package reader import ( "bufio" "io" ) type BlockReader struct { reader *bufio.Reader } func NewBlockReader(reader io.Reader) *BlockReader { return &BlockReader{ reader: bufio.NewReader(reader), } } func (br *BlockReader) ReadBlock() (block map[string]any, err error) { var str string var line []byte var isprefix bool = true for isprefix { line, isprefix, err = br.reader.ReadLine() if err != nil { if err == io.EOF { err = nil } return nil, err } str += string(line) } block = map[string]any{"line": str} return }