Documentation ¶
Index ¶
- Constants
- func ChanReadWriter(inp ...*bufio.ReadWriter) (out <-chan *bufio.ReadWriter)
- func ChanReadWriterFuncErr(act func() (*bufio.ReadWriter, error)) (out <-chan *bufio.ReadWriter)
- func ChanReadWriterFuncNok(act func() (*bufio.ReadWriter, bool)) (out <-chan *bufio.ReadWriter)
- func ChanReadWriterSlice(inp ...[]*bufio.ReadWriter) (out <-chan *bufio.ReadWriter)
- func ChanReader(inp ...*bufio.Reader) (out <-chan *bufio.Reader)
- func ChanReaderFuncErr(act func() (*bufio.Reader, error)) (out <-chan *bufio.Reader)
- func ChanReaderFuncNok(act func() (*bufio.Reader, bool)) (out <-chan *bufio.Reader)
- func ChanReaderSlice(inp ...[]*bufio.Reader) (out <-chan *bufio.Reader)
- func ChanScanner(inp ...*bufio.Scanner) (out <-chan *bufio.Scanner)
- func ChanScannerFuncErr(act func() (*bufio.Scanner, error)) (out <-chan *bufio.Scanner)
- func ChanScannerFuncNok(act func() (*bufio.Scanner, bool)) (out <-chan *bufio.Scanner)
- func ChanScannerSlice(inp ...[]*bufio.Scanner) (out <-chan *bufio.Scanner)
- func ChanSplitFunc(inp ...bufio.SplitFunc) (out <-chan bufio.SplitFunc)
- func ChanSplitFuncFuncErr(act func() (bufio.SplitFunc, error)) (out <-chan bufio.SplitFunc)
- func ChanSplitFuncFuncNok(act func() (bufio.SplitFunc, bool)) (out <-chan bufio.SplitFunc)
- func ChanSplitFuncSlice(inp ...[]bufio.SplitFunc) (out <-chan bufio.SplitFunc)
- func ChanWriter(inp ...*bufio.Writer) (out <-chan *bufio.Writer)
- func ChanWriterFuncErr(act func() (*bufio.Writer, error)) (out <-chan *bufio.Writer)
- func ChanWriterFuncNok(act func() (*bufio.Writer, bool)) (out <-chan *bufio.Writer)
- func ChanWriterSlice(inp ...[]*bufio.Writer) (out <-chan *bufio.Writer)
- func DoneReadWriter(inp <-chan *bufio.ReadWriter) (done <-chan struct{})
- func DoneReadWriterFunc(inp <-chan *bufio.ReadWriter, act func(a *bufio.ReadWriter)) (out <-chan struct{})
- func DoneReadWriterSlice(inp <-chan *bufio.ReadWriter) (done <-chan ([]*bufio.ReadWriter))
- func DoneReader(inp <-chan *bufio.Reader) (done <-chan struct{})
- func DoneReaderFunc(inp <-chan *bufio.Reader, act func(a *bufio.Reader)) (out <-chan struct{})
- func DoneReaderSlice(inp <-chan *bufio.Reader) (done <-chan ([]*bufio.Reader))
- func DoneScanner(inp <-chan *bufio.Scanner) (done <-chan struct{})
- func DoneScannerFunc(inp <-chan *bufio.Scanner, act func(a *bufio.Scanner)) (out <-chan struct{})
- func DoneScannerSlice(inp <-chan *bufio.Scanner) (done <-chan ([]*bufio.Scanner))
- func DoneSplitFunc(inp <-chan bufio.SplitFunc) (done <-chan struct{})
- func DoneSplitFuncFunc(inp <-chan bufio.SplitFunc, act func(a bufio.SplitFunc)) (out <-chan struct{})
- func DoneSplitFuncSlice(inp <-chan bufio.SplitFunc) (done <-chan ([]bufio.SplitFunc))
- func DoneWriter(inp <-chan *bufio.Writer) (done <-chan struct{})
- func DoneWriterFunc(inp <-chan *bufio.Writer, act func(a *bufio.Writer)) (out <-chan struct{})
- func DoneWriterSlice(inp <-chan *bufio.Writer) (done <-chan ([]*bufio.Writer))
- func JoinReadWriter(out chan<- *bufio.ReadWriter, inp ...*bufio.ReadWriter) (done <-chan struct{})
- func JoinReadWriterChan(out chan<- *bufio.ReadWriter, inp <-chan *bufio.ReadWriter) (done <-chan struct{})
- func JoinReadWriterSlice(out chan<- *bufio.ReadWriter, inp ...[]*bufio.ReadWriter) (done <-chan struct{})
- func JoinReader(out chan<- *bufio.Reader, inp ...*bufio.Reader) (done <-chan struct{})
- func JoinReaderChan(out chan<- *bufio.Reader, inp <-chan *bufio.Reader) (done <-chan struct{})
- func JoinReaderSlice(out chan<- *bufio.Reader, inp ...[]*bufio.Reader) (done <-chan struct{})
- func JoinScanner(out chan<- *bufio.Scanner, inp ...*bufio.Scanner) (done <-chan struct{})
- func JoinScannerChan(out chan<- *bufio.Scanner, inp <-chan *bufio.Scanner) (done <-chan struct{})
- func JoinScannerSlice(out chan<- *bufio.Scanner, inp ...[]*bufio.Scanner) (done <-chan struct{})
- func JoinSplitFunc(out chan<- bufio.SplitFunc, inp ...bufio.SplitFunc) (done <-chan struct{})
- func JoinSplitFuncChan(out chan<- bufio.SplitFunc, inp <-chan bufio.SplitFunc) (done <-chan struct{})
- func JoinSplitFuncSlice(out chan<- bufio.SplitFunc, inp ...[]bufio.SplitFunc) (done <-chan struct{})
- func JoinWriter(out chan<- *bufio.Writer, inp ...*bufio.Writer) (done <-chan struct{})
- func JoinWriterChan(out chan<- *bufio.Writer, inp <-chan *bufio.Writer) (done <-chan struct{})
- func JoinWriterSlice(out chan<- *bufio.Writer, inp ...[]*bufio.Writer) (done <-chan struct{})
- func MakeReadWriterChan() (out chan *bufio.ReadWriter)
- func MakeReaderChan() (out chan *bufio.Reader)
- func MakeScannerChan() (out chan *bufio.Scanner)
- func MakeSplitFuncChan() (out chan bufio.SplitFunc)
- func MakeWriterChan() (out chan *bufio.Writer)
- func PipeLines(inp <-chan os.File) (out <-chan string)
- func PipeReadWriterBuffer(inp <-chan *bufio.ReadWriter, cap int) (out <-chan *bufio.ReadWriter)
- func PipeReadWriterFork(inp <-chan *bufio.ReadWriter) (out1, out2 <-chan *bufio.ReadWriter)
- func PipeReadWriterFunc(inp <-chan *bufio.ReadWriter, act func(a *bufio.ReadWriter) *bufio.ReadWriter) (out <-chan *bufio.ReadWriter)
- func PipeReaderBuffer(inp <-chan *bufio.Reader, cap int) (out <-chan *bufio.Reader)
- func PipeReaderFork(inp <-chan *bufio.Reader) (out1, out2 <-chan *bufio.Reader)
- func PipeReaderFunc(inp <-chan *bufio.Reader, act func(a *bufio.Reader) *bufio.Reader) (out <-chan *bufio.Reader)
- func PipeScannerBuffer(inp <-chan *bufio.Scanner, cap int) (out <-chan *bufio.Scanner)
- func PipeScannerFork(inp <-chan *bufio.Scanner) (out1, out2 <-chan *bufio.Scanner)
- func PipeScannerFunc(inp <-chan *bufio.Scanner, act func(a *bufio.Scanner) *bufio.Scanner) (out <-chan *bufio.Scanner)
- func PipeSplitFuncBuffer(inp <-chan bufio.SplitFunc, cap int) (out <-chan bufio.SplitFunc)
- func PipeSplitFuncFork(inp <-chan bufio.SplitFunc) (out1, out2 <-chan bufio.SplitFunc)
- func PipeSplitFuncFunc(inp <-chan bufio.SplitFunc, act func(a bufio.SplitFunc) bufio.SplitFunc) (out <-chan bufio.SplitFunc)
- func PipeWriterBuffer(inp <-chan *bufio.Writer, cap int) (out <-chan *bufio.Writer)
- func PipeWriterFork(inp <-chan *bufio.Writer) (out1, out2 <-chan *bufio.Writer)
- func PipeWriterFunc(inp <-chan *bufio.Writer, act func(a *bufio.Writer) *bufio.Writer) (out <-chan *bufio.Writer)
- func ReadWriterDaisy(inp <-chan *bufio.ReadWriter, tube ReadWriterTube) (out <-chan *bufio.ReadWriter)
- func ReadWriterDaisyChain(inp <-chan *bufio.ReadWriter, tubes ...ReadWriterTube) (out <-chan *bufio.ReadWriter)
- func ReadWriters(inp1 <-chan *bufio.Reader, inp2 <-chan *bufio.Writer) (out <-chan *bufio.ReadWriter)
- func ReaderDaisy(inp <-chan *bufio.Reader, tube ReaderTube) (out <-chan *bufio.Reader)
- func ReaderDaisyChain(inp <-chan *bufio.Reader, tubes ...ReaderTube) (out <-chan *bufio.Reader)
- func ReaderSize(inp <-chan io.Reader, size int) (out <-chan *bufio.Reader)
- func Readers(inp <-chan io.Reader) (out <-chan *bufio.Reader)
- func ScannerDaisy(inp <-chan *bufio.Scanner, tube ScannerTube) (out <-chan *bufio.Scanner)
- func ScannerDaisyChain(inp <-chan *bufio.Scanner, tubes ...ScannerTube) (out <-chan *bufio.Scanner)
- func Scanners(inp <-chan io.Reader) (out <-chan *bufio.Scanner)
- func SendProxyReadWriter(out chan<- *bufio.ReadWriter) chan<- *bufio.ReadWriter
- func SendProxyReader(out chan<- *bufio.Reader) chan<- *bufio.Reader
- func SendProxyScanner(out chan<- *bufio.Scanner) chan<- *bufio.Scanner
- func SendProxySplitFunc(out chan<- bufio.SplitFunc) chan<- bufio.SplitFunc
- func SendProxyWriter(out chan<- *bufio.Writer) chan<- *bufio.Writer
- func SplitFuncDaisy(inp <-chan bufio.SplitFunc, tube SplitFuncTube) (out <-chan bufio.SplitFunc)
- func SplitFuncDaisyChain(inp <-chan bufio.SplitFunc, tubes ...SplitFuncTube) (out <-chan bufio.SplitFunc)
- func WriterDaisy(inp <-chan *bufio.Writer, tube WriterTube) (out <-chan *bufio.Writer)
- func WriterDaisyChain(inp <-chan *bufio.Writer, tubes ...WriterTube) (out <-chan *bufio.Writer)
- func WriterSize(inp <-chan io.Writer, size int) (out <-chan *bufio.Writer)
- func Writers(inp <-chan io.Writer) (out <-chan *bufio.Writer)
- type ReadWriterTube
- type ReaderTube
- type ScannerTube
- type SplitFuncTube
- type WriterTube
Constants ¶
const ReadWriterCAP = 10
ReadWriterCAP is the capacity of the buffered proxy channel
const ReadWriterQUE = 16
ReadWriterQUE is the allocated size of the circular queue
const ReaderCAP = 10
ReaderCAP is the capacity of the buffered proxy channel
const ReaderQUE = 16
ReaderQUE is the allocated size of the circular queue
const ScannerCAP = 10
ScannerCAP is the capacity of the buffered proxy channel
const ScannerQUE = 16
ScannerQUE is the allocated size of the circular queue
const SplitFuncCAP = 10
SplitFuncCAP is the capacity of the buffered proxy channel
const SplitFuncQUE = 16
SplitFuncQUE is the allocated size of the circular queue
const WriterCAP = 10
WriterCAP is the capacity of the buffered proxy channel
const WriterQUE = 16
WriterQUE is the allocated size of the circular queue
Variables ¶
This section is empty.
Functions ¶
func ChanReadWriter ¶
func ChanReadWriter(inp ...*bufio.ReadWriter) (out <-chan *bufio.ReadWriter)
ChanReadWriter returns a channel to receive all inputs before close.
func ChanReadWriterFuncErr ¶
func ChanReadWriterFuncErr(act func() (*bufio.ReadWriter, error)) (out <-chan *bufio.ReadWriter)
ChanReadWriterFuncErr returns a channel to receive all results of act until err != nil before close.
func ChanReadWriterFuncNok ¶
func ChanReadWriterFuncNok(act func() (*bufio.ReadWriter, bool)) (out <-chan *bufio.ReadWriter)
ChanReadWriterFuncNok returns a channel to receive all results of act until nok before close.
func ChanReadWriterSlice ¶
func ChanReadWriterSlice(inp ...[]*bufio.ReadWriter) (out <-chan *bufio.ReadWriter)
ChanReadWriterSlice returns a channel to receive all inputs before close.
func ChanReader ¶
ChanReader returns a channel to receive all inputs before close.
func ChanReaderFuncErr ¶
ChanReaderFuncErr returns a channel to receive all results of act until err != nil before close.
func ChanReaderFuncNok ¶
ChanReaderFuncNok returns a channel to receive all results of act until nok before close.
func ChanReaderSlice ¶
ChanReaderSlice returns a channel to receive all inputs before close.
func ChanScanner ¶
ChanScanner returns a channel to receive all inputs before close.
func ChanScannerFuncErr ¶
ChanScannerFuncErr returns a channel to receive all results of act until err != nil before close.
func ChanScannerFuncNok ¶
ChanScannerFuncNok returns a channel to receive all results of act until nok before close.
func ChanScannerSlice ¶
ChanScannerSlice returns a channel to receive all inputs before close.
func ChanSplitFunc ¶
ChanSplitFunc returns a channel to receive all inputs before close.
func ChanSplitFuncFuncErr ¶
ChanSplitFuncFuncErr returns a channel to receive all results of act until err != nil before close.
func ChanSplitFuncFuncNok ¶
ChanSplitFuncFuncNok returns a channel to receive all results of act until nok before close.
func ChanSplitFuncSlice ¶
ChanSplitFuncSlice returns a channel to receive all inputs before close.
func ChanWriter ¶
ChanWriter returns a channel to receive all inputs before close.
func ChanWriterFuncErr ¶
ChanWriterFuncErr returns a channel to receive all results of act until err != nil before close.
func ChanWriterFuncNok ¶
ChanWriterFuncNok returns a channel to receive all results of act until nok before close.
func ChanWriterSlice ¶
ChanWriterSlice returns a channel to receive all inputs before close.
func DoneReadWriter ¶
func DoneReadWriter(inp <-chan *bufio.ReadWriter) (done <-chan struct{})
DoneReadWriter returns a channel to receive one signal before close after inp has been drained.
func DoneReadWriterFunc ¶
func DoneReadWriterFunc(inp <-chan *bufio.ReadWriter, act func(a *bufio.ReadWriter)) (out <-chan struct{})
DoneReadWriterFunc returns a channel to receive one signal before close after act has been applied to all inp.
func DoneReadWriterSlice ¶
func DoneReadWriterSlice(inp <-chan *bufio.ReadWriter) (done <-chan ([]*bufio.ReadWriter))
DoneReadWriterSlice returns a channel which will receive a slice of all the ReadWriters received on inp channel before close. Unlike DoneReadWriter, a full slice is sent once, not just an event.
func DoneReader ¶
DoneReader returns a channel to receive one signal before close after inp has been drained.
func DoneReaderFunc ¶
DoneReaderFunc returns a channel to receive one signal before close after act has been applied to all inp.
func DoneReaderSlice ¶
DoneReaderSlice returns a channel which will receive a slice of all the Readers received on inp channel before close. Unlike DoneReader, a full slice is sent once, not just an event.
func DoneScanner ¶
DoneScanner returns a channel to receive one signal before close after inp has been drained.
func DoneScannerFunc ¶
DoneScannerFunc returns a channel to receive one signal before close after act has been applied to all inp.
func DoneScannerSlice ¶
DoneScannerSlice returns a channel which will receive a slice of all the Scanners received on inp channel before close. Unlike DoneScanner, a full slice is sent once, not just an event.
func DoneSplitFunc ¶
DoneSplitFunc returns a channel to receive one signal before close after inp has been drained.
func DoneSplitFuncFunc ¶
func DoneSplitFuncFunc(inp <-chan bufio.SplitFunc, act func(a bufio.SplitFunc)) (out <-chan struct{})
DoneSplitFuncFunc returns a channel to receive one signal before close after act has been applied to all inp.
func DoneSplitFuncSlice ¶
DoneSplitFuncSlice returns a channel which will receive a slice of all the SplitFuncs received on inp channel before close. Unlike DoneSplitFunc, a full slice is sent once, not just an event.
func DoneWriter ¶
DoneWriter returns a channel to receive one signal before close after inp has been drained.
func DoneWriterFunc ¶
DoneWriterFunc returns a channel to receive one signal before close after act has been applied to all inp.
func DoneWriterSlice ¶
DoneWriterSlice returns a channel which will receive a slice of all the Writers received on inp channel before close. Unlike DoneWriter, a full slice is sent once, not just an event.
func JoinReadWriter ¶
func JoinReadWriter(out chan<- *bufio.ReadWriter, inp ...*bufio.ReadWriter) (done <-chan struct{})
JoinReadWriter sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinReadWriterChan ¶
func JoinReadWriterChan(out chan<- *bufio.ReadWriter, inp <-chan *bufio.ReadWriter) (done <-chan struct{})
JoinReadWriterChan sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinReadWriterSlice ¶
func JoinReadWriterSlice(out chan<- *bufio.ReadWriter, inp ...[]*bufio.ReadWriter) (done <-chan struct{})
JoinReadWriterSlice sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinReader ¶
JoinReader sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinReaderChan ¶
JoinReaderChan sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinReaderSlice ¶
JoinReaderSlice sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinScanner ¶
JoinScanner sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinScannerChan ¶
JoinScannerChan sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinScannerSlice ¶
JoinScannerSlice sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinSplitFunc ¶
JoinSplitFunc sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinSplitFuncChan ¶
func JoinSplitFuncChan(out chan<- bufio.SplitFunc, inp <-chan bufio.SplitFunc) (done <-chan struct{})
JoinSplitFuncChan sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinSplitFuncSlice ¶
func JoinSplitFuncSlice(out chan<- bufio.SplitFunc, inp ...[]bufio.SplitFunc) (done <-chan struct{})
JoinSplitFuncSlice sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinWriter ¶
JoinWriter sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinWriterChan ¶
JoinWriterChan sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func JoinWriterSlice ¶
JoinWriterSlice sends inputs on the given out channel and returns a done channel to receive one signal when inp has been drained
func MakeReadWriterChan ¶
func MakeReadWriterChan() (out chan *bufio.ReadWriter)
MakeReadWriterChan returns a new open channel (simply a 'chan *bufio.ReadWriter' that is).
Note: No 'ReadWriter-producer' is launched here yet! (as is in all the other functions).
This is useful to easily create corresponding variables such as
var myReadWriterPipelineStartsHere := MakeReadWriterChan() // ... lot's of code to design and build Your favourite "myReadWriterWorkflowPipeline" // ... // ... *before* You start pouring data into it, e.g. simply via: for drop := range water { myReadWriterPipelineStartsHere <- drop } close(myReadWriterPipelineStartsHere)
Hint: especially helpful, if Your piping library operates on some hidden (non-exported) type (or on a type imported from elsewhere - and You don't want/need or should(!) have to care.)
Note: as always (except for PipeReadWriterBuffer) the channel is unbuffered.
func MakeReaderChan ¶
MakeReaderChan returns a new open channel (simply a 'chan *bufio.Reader' that is).
Note: No 'Reader-producer' is launched here yet! (as is in all the other functions).
This is useful to easily create corresponding variables such as
var myReaderPipelineStartsHere := MakeReaderChan() // ... lot's of code to design and build Your favourite "myReaderWorkflowPipeline" // ... // ... *before* You start pouring data into it, e.g. simply via: for drop := range water { myReaderPipelineStartsHere <- drop } close(myReaderPipelineStartsHere)
Hint: especially helpful, if Your piping library operates on some hidden (non-exported) type (or on a type imported from elsewhere - and You don't want/need or should(!) have to care.)
Note: as always (except for PipeReaderBuffer) the channel is unbuffered.
func MakeScannerChan ¶
MakeScannerChan returns a new open channel (simply a 'chan *bufio.Scanner' that is).
Note: No 'Scanner-producer' is launched here yet! (as is in all the other functions).
This is useful to easily create corresponding variables such as
var myScannerPipelineStartsHere := MakeScannerChan() // ... lot's of code to design and build Your favourite "myScannerWorkflowPipeline" // ... // ... *before* You start pouring data into it, e.g. simply via: for drop := range water { myScannerPipelineStartsHere <- drop } close(myScannerPipelineStartsHere)
Hint: especially helpful, if Your piping library operates on some hidden (non-exported) type (or on a type imported from elsewhere - and You don't want/need or should(!) have to care.)
Note: as always (except for PipeScannerBuffer) the channel is unbuffered.
func MakeSplitFuncChan ¶
MakeSplitFuncChan returns a new open channel (simply a 'chan bufio.SplitFunc' that is).
Note: No 'SplitFunc-producer' is launched here yet! (as is in all the other functions).
This is useful to easily create corresponding variables such as
var mySplitFuncPipelineStartsHere := MakeSplitFuncChan() // ... lot's of code to design and build Your favourite "mySplitFuncWorkflowPipeline" // ... // ... *before* You start pouring data into it, e.g. simply via: for drop := range water { mySplitFuncPipelineStartsHere <- drop } close(mySplitFuncPipelineStartsHere)
Hint: especially helpful, if Your piping library operates on some hidden (non-exported) type (or on a type imported from elsewhere - and You don't want/need or should(!) have to care.)
Note: as always (except for PipeSplitFuncBuffer) the channel is unbuffered.
func MakeWriterChan ¶
MakeWriterChan returns a new open channel (simply a 'chan *bufio.Writer' that is).
Note: No 'Writer-producer' is launched here yet! (as is in all the other functions).
This is useful to easily create corresponding variables such as
var myWriterPipelineStartsHere := MakeWriterChan() // ... lot's of code to design and build Your favourite "myWriterWorkflowPipeline" // ... // ... *before* You start pouring data into it, e.g. simply via: for drop := range water { myWriterPipelineStartsHere <- drop } close(myWriterPipelineStartsHere)
Hint: especially helpful, if Your piping library operates on some hidden (non-exported) type (or on a type imported from elsewhere - and You don't want/need or should(!) have to care.)
Note: as always (except for PipeWriterBuffer) the channel is unbuffered.
func PipeReadWriterBuffer ¶
func PipeReadWriterBuffer(inp <-chan *bufio.ReadWriter, cap int) (out <-chan *bufio.ReadWriter)
PipeReadWriterBuffer returns a buffered channel with capacity cap to receive all inp before close.
func PipeReadWriterFork ¶
func PipeReadWriterFork(inp <-chan *bufio.ReadWriter) (out1, out2 <-chan *bufio.ReadWriter)
PipeReadWriterFork returns two channels to receive every result of inp before close.
Note: Yes, it is a VERY simple fanout - but sometimes all You need.
func PipeReadWriterFunc ¶
func PipeReadWriterFunc(inp <-chan *bufio.ReadWriter, act func(a *bufio.ReadWriter) *bufio.ReadWriter) (out <-chan *bufio.ReadWriter)
PipeReadWriterFunc returns a channel to receive every result of act applied to inp before close. Note: it 'could' be PipeReadWriterMap for functional people, but 'map' has a very different meaning in go lang.
func PipeReaderBuffer ¶
PipeReaderBuffer returns a buffered channel with capacity cap to receive all inp before close.
func PipeReaderFork ¶
PipeReaderFork returns two channels to receive every result of inp before close.
Note: Yes, it is a VERY simple fanout - but sometimes all You need.
func PipeReaderFunc ¶
func PipeReaderFunc(inp <-chan *bufio.Reader, act func(a *bufio.Reader) *bufio.Reader) (out <-chan *bufio.Reader)
PipeReaderFunc returns a channel to receive every result of act applied to inp before close. Note: it 'could' be PipeReaderMap for functional people, but 'map' has a very different meaning in go lang.
func PipeScannerBuffer ¶
PipeScannerBuffer returns a buffered channel with capacity cap to receive all inp before close.
func PipeScannerFork ¶
PipeScannerFork returns two channels to receive every result of inp before close.
Note: Yes, it is a VERY simple fanout - but sometimes all You need.
func PipeScannerFunc ¶
func PipeScannerFunc(inp <-chan *bufio.Scanner, act func(a *bufio.Scanner) *bufio.Scanner) (out <-chan *bufio.Scanner)
PipeScannerFunc returns a channel to receive every result of act applied to inp before close. Note: it 'could' be PipeScannerMap for functional people, but 'map' has a very different meaning in go lang.
func PipeSplitFuncBuffer ¶
PipeSplitFuncBuffer returns a buffered channel with capacity cap to receive all inp before close.
func PipeSplitFuncFork ¶
PipeSplitFuncFork returns two channels to receive every result of inp before close.
Note: Yes, it is a VERY simple fanout - but sometimes all You need.
func PipeSplitFuncFunc ¶
func PipeSplitFuncFunc(inp <-chan bufio.SplitFunc, act func(a bufio.SplitFunc) bufio.SplitFunc) (out <-chan bufio.SplitFunc)
PipeSplitFuncFunc returns a channel to receive every result of act applied to inp before close. Note: it 'could' be PipeSplitFuncMap for functional people, but 'map' has a very different meaning in go lang.
func PipeWriterBuffer ¶
PipeWriterBuffer returns a buffered channel with capacity cap to receive all inp before close.
func PipeWriterFork ¶
PipeWriterFork returns two channels to receive every result of inp before close.
Note: Yes, it is a VERY simple fanout - but sometimes all You need.
func PipeWriterFunc ¶
func PipeWriterFunc(inp <-chan *bufio.Writer, act func(a *bufio.Writer) *bufio.Writer) (out <-chan *bufio.Writer)
PipeWriterFunc returns a channel to receive every result of act applied to inp before close. Note: it 'could' be PipeWriterMap for functional people, but 'map' has a very different meaning in go lang.
func ReadWriterDaisy ¶
func ReadWriterDaisy(inp <-chan *bufio.ReadWriter, tube ReadWriterTube) (out <-chan *bufio.ReadWriter)
ReadWriterDaisy returns a channel to receive all inp after having passed thru tube.
func ReadWriterDaisyChain ¶
func ReadWriterDaisyChain(inp <-chan *bufio.ReadWriter, tubes ...ReadWriterTube) (out <-chan *bufio.ReadWriter)
ReadWriterDaisyChain returns a channel to receive all inp after having passed thru all tubes.
func ReadWriters ¶
func ReadWriters(inp1 <-chan *bufio.Reader, inp2 <-chan *bufio.Writer) (out <-chan *bufio.ReadWriter)
ReadWriters - (r *Reader, w *Writer) *ReadWriter
func ReaderDaisy ¶
func ReaderDaisy(inp <-chan *bufio.Reader, tube ReaderTube) (out <-chan *bufio.Reader)
ReaderDaisy returns a channel to receive all inp after having passed thru tube.
func ReaderDaisyChain ¶
func ReaderDaisyChain(inp <-chan *bufio.Reader, tubes ...ReaderTube) (out <-chan *bufio.Reader)
ReaderDaisyChain returns a channel to receive all inp after having passed thru all tubes.
func ReaderSize ¶
ReaderSize - (w io.Reader, size int) *Reader
func ScannerDaisy ¶
func ScannerDaisy(inp <-chan *bufio.Scanner, tube ScannerTube) (out <-chan *bufio.Scanner)
ScannerDaisy returns a channel to receive all inp after having passed thru tube.
func ScannerDaisyChain ¶
func ScannerDaisyChain(inp <-chan *bufio.Scanner, tubes ...ScannerTube) (out <-chan *bufio.Scanner)
ScannerDaisyChain returns a channel to receive all inp after having passed thru all tubes.
func SendProxyReadWriter ¶
func SendProxyReadWriter(out chan<- *bufio.ReadWriter) chan<- *bufio.ReadWriter
SendProxyReadWriter returns a channel to serve as a sending proxy to 'out'. Uses a goroutine to receive values from 'out' and store them in an expanding buffer, so that sending to 'out' never blocks.
Note: the expanding buffer is implemented via "container/ring"
func SendProxyReader ¶
SendProxyReader returns a channel to serve as a sending proxy to 'out'. Uses a goroutine to receive values from 'out' and store them in an expanding buffer, so that sending to 'out' never blocks.
Note: the expanding buffer is implemented via "container/ring"
func SendProxyScanner ¶
SendProxyScanner returns a channel to serve as a sending proxy to 'out'. Uses a goroutine to receive values from 'out' and store them in an expanding buffer, so that sending to 'out' never blocks.
Note: the expanding buffer is implemented via "container/ring"
func SendProxySplitFunc ¶
SendProxySplitFunc returns a channel to serve as a sending proxy to 'out'. Uses a goroutine to receive values from 'out' and store them in an expanding buffer, so that sending to 'out' never blocks.
Note: the expanding buffer is implemented via "container/ring"
func SendProxyWriter ¶
SendProxyWriter returns a channel to serve as a sending proxy to 'out'. Uses a goroutine to receive values from 'out' and store them in an expanding buffer, so that sending to 'out' never blocks.
Note: the expanding buffer is implemented via "container/ring"
func SplitFuncDaisy ¶
func SplitFuncDaisy(inp <-chan bufio.SplitFunc, tube SplitFuncTube) (out <-chan bufio.SplitFunc)
SplitFuncDaisy returns a channel to receive all inp after having passed thru tube.
func SplitFuncDaisyChain ¶
func SplitFuncDaisyChain(inp <-chan bufio.SplitFunc, tubes ...SplitFuncTube) (out <-chan bufio.SplitFunc)
SplitFuncDaisyChain returns a channel to receive all inp after having passed thru all tubes.
func WriterDaisy ¶
func WriterDaisy(inp <-chan *bufio.Writer, tube WriterTube) (out <-chan *bufio.Writer)
WriterDaisy returns a channel to receive all inp after having passed thru tube.
func WriterDaisyChain ¶
func WriterDaisyChain(inp <-chan *bufio.Writer, tubes ...WriterTube) (out <-chan *bufio.Writer)
WriterDaisyChain returns a channel to receive all inp after having passed thru all tubes.
func WriterSize ¶
WriterSize - (w io.Writer, size int) *Writer
Types ¶
type ReadWriterTube ¶
type ReadWriterTube func(inp <-chan *bufio.ReadWriter, out <-chan *bufio.ReadWriter)
ReadWriterTube is the signature for a pipe function.
type ReaderTube ¶
ReaderTube is the signature for a pipe function.
type ScannerTube ¶
ScannerTube is the signature for a pipe function.
type SplitFuncTube ¶
SplitFuncTube is the signature for a pipe function.