buffer.go 891 B

123456789101112
  1. // Package buffer contains buffer and wrapper types for byte slices. It is useful for writing lexers or other high-performance byte slice handling.
  2. // The `Reader` and `Writer` types implement the `io.Reader` and `io.Writer` respectively and provide a thinner and faster interface than `bytes.Buffer`.
  3. // 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.
  4. // 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.
  5. package buffer
  6. // defaultBufSize specifies the default initial length of internal buffers.
  7. var defaultBufSize = 4096
  8. // MinBuf specifies the default initial length of internal buffers.
  9. // Solely here to support old versions of parse.
  10. var MinBuf = defaultBufSize