Documentation
¶
Overview ¶
Package scanners provides useful text scanners that alleviate the need for reading entire file contents into memory when processing one string at a time would suffice.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ScanFileLines ¶
func ScanFileLines(path string, fn ScanLinesFn) (stopped bool, err error)
ScanFileLines opens the given file for reading, passing the open *os.File and the given ScanLinesFn to the ScanLines function for reading lines one at a time
Types ¶
type LineScanner ¶ added in v1.1.0
type LineScanner struct {
// contains filtered or unexported fields
}
LineScanner is an io.Reader based line-reading text scanner that retains newlines and internally uses bufio.Reader.ReadRune to accumulate line text
func NewLineScanner ¶ added in v1.1.0
func NewLineScanner(reader io.Reader) *LineScanner
NewLineScanner constructs a new LineScanner instance
func NewLineScannerString ¶ added in v1.1.0
func NewLineScannerString(input string) *LineScanner
NewLineScannerString is a convenience wrapper around strings.NewReader and NewLineScanner
func (*LineScanner) Err ¶ added in v1.1.0
func (s *LineScanner) Err() (err error)
Err returns any bufio.Reader.ReadRune error encountered during the last Scan iteration
func (*LineScanner) Peek ¶ added in v1.1.0
func (s *LineScanner) Peek() (next string, ok bool)
Peek returns the content of the next line, if there is a next line, without advancing the LineScanner. Multiple calls to Peek will return the same results
func (*LineScanner) Scan ¶ added in v1.1.0
func (s *LineScanner) Scan() (ok bool)
Scan reads runes up to and including a newline. Scan returns false upon the first error returned by bufio.Reader.ReadRune or when the end of the input buffer is reached
func (*LineScanner) Text ¶ added in v1.1.0
func (s *LineScanner) Text() (text string)
Text returns the content of the last scanned line, even if Scan has reached the end of the bufio.Reader
type ScanLinesFn ¶
ScanLinesFn is the callback func for receiving lines of text as they are read and if the func returns true, the scanning process will immediately stop any further scanning