MCPcopy
hub / github.com/go-yaml/yaml / yaml_parser_update_raw_buffer

Function yaml_parser_update_raw_buffer

readerc.go:78–107  ·  view source on GitHub ↗

Update the raw buffer.

(parser *yaml_parser_t)

Source from the content-addressed store, hash-verified

76
77// Update the raw buffer.
78func yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {
79 size_read := 0
80
81 // Return if the raw buffer is full.
82 if parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {
83 return true
84 }
85
86 // Return on EOF.
87 if parser.eof {
88 return true
89 }
90
91 // Move the remaining bytes in the raw buffer to the beginning.
92 if parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {
93 copy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])
94 }
95 parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]
96 parser.raw_buffer_pos = 0
97
98 // Call the read handler to fill the buffer.
99 size_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])
100 parser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]
101 if err == io.EOF {
102 parser.eof = true
103 } else if err != nil {
104 return yaml_parser_set_reader_error(parser, "input error: "+err.Error(), parser.offset, -1)
105 }
106 return true
107}
108
109// Ensure that the buffer contains at least `length` characters.
110// Return true on success, false on failure.

Callers 2

Calls 2

ErrorMethod · 0.80

Tested by

no test coverage detected