overreader

package module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2021 License: Apache-2.0 Imports: 4 Imported by: 1

README

Go

overreader

Implements a single reader which handles replacing multiple ranges in an underlying reader with separate data.

Usage

package main

import (
	"fmt"
	"io"
	"log"
	"os"
	"strings"

	"github.com/carbonin/overreader"
)

func main() {
	sr := strings.NewReader("12345 ----- abcde ===")

	range1 := &overreader.Range{
		Content: strings.NewReader("67890"),
		Offset:  6,
	}
	range2 := &overreader.Range{
		Content: strings.NewReader("xyz"),
		Offset:  18,
	}

	r, err := overreader.NewReader(sr, range1, range2)
	if err != nil {
		log.Fatal(err)
	}
	if _, err := io.Copy(os.Stdout, r); err != nil {
		log.Fatal(err)
	}
	fmt.Println("")
}

Running the program above results in the output: 12345 67890 abcde xyz

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewReader

func NewReader(baseReader io.Reader, overrideRanges ...*Range) (io.Reader, error)

Types

type Range

type Range struct {
	Content io.ReadSeeker
	Offset  int64
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL