Categorygithub.com/go-corelibs/scanners
modulepackage
1.1.0
Repository: https://github.com/go-corelibs/scanners.git
Documentation: pkg.go.dev

# README

godoc codecov Go Report Card

scanners - useful string scanner utilities

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.

Installation

> go get github.com/go-corelibs/scanners@latest

Examples

ScanLines

func main() {
    // read one line at a time from os.Stdin and write to os.Stdout
    stopped := ScanLines(os.Stding, func(line string) (stop bool) {
        fmt.Fprintf(os.Stdout, line + "\n")
        return
    })
    // stopped == false because the ScanLinesFn given never returns true
}

ScanNulls

func main() {
    // read one null-terminated string at a time from os.Stdin and write to
    // os.Stdout
    stopped := ScanNulls(os.Stding, func(line string) (stop bool) {
        fmt.Fprintf(os.Stdout, line + "\n")
        return
    })
    // stopped == false because the ScanLinesFn given never returns true
}

Go-CoreLibs

Go-CoreLibs is a repository of shared code between the Go-Curses and Go-Enjin projects.

License

Copyright 2024 The Go-CoreLibs Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use file except in compliance with the License.
You may obtain a copy of the license at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

# Functions

NewLineScanner constructs a new LineScanner instance.
NewLineScannerString is a convenience wrapper around strings.NewReader and NewLineScanner.
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.
ScanLines reads newline terminated strings of text from the given reader, calling the ScanLinesFn for each newline terminated string of text.
ScanNulls reads null-terminated strings of text from the given reader, calling the ScanLinesFn for each null terminated string of text.

# Structs

LineScanner is an io.Reader based line-reading text scanner that retains newlines and internally uses [bufio.Reader.ReadRune] to accumulate line text.

# Type aliases

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.