buffer.go 931 B

123456789101112131415
  1. /*
  2. Package buffer contains buffer and wrapper types for byte slices. It is useful for writing lexers or other high-performance byte slice handling.
  3. The `Reader` and `Writer` types implement the `io.Reader` and `io.Writer` respectively and provide a thinner and faster interface than `bytes.Buffer`.
  4. The `Lexer` type is useful for building lexers because it keeps track of the start and end position of a byte selection, and shifts the bytes whenever a valid token is found.
  5. The `StreamLexer` does the same, but keeps a buffer pool so that it reads a limited amount at a time, allowing to parse from streaming sources.
  6. */
  7. package buffer // import "github.com/tdewolff/parse/buffer"
  8. // defaultBufSize specifies the default initial length of internal buffers.
  9. var defaultBufSize = 4096
  10. // MinBuf specifies the default initial length of internal buffers.
  11. // Solely here to support old versions of parse.
  12. var MinBuf = defaultBufSize