func (r *Reader) ReadLine() []byte {
	if r.EOF {
		return []byte{}
	}
	b, err := r.r.ReadBytes('\n')
	if err == io.EOF {
		r.EOF = true
	} else if err != nil {
		fmt.Printf("Error reading input data: %v\n", err)
		return []byte{}
	}
	r.Offset += len(b)
	if !r.EOF {
		r.LineNumber++
	}
	if r.progress != nil {
		r.progress.MaybeReport(int64(r.Offset - 1))
	}
	return b
}
ReadLine returns a line of input.
package internal
import (
	"bufio"
	"fmt"
	"io"
)
type Reader struct {
	LineNumber int  
	Offset     int  
	EOF        bool
	r          *bufio.Reader
	progress   *Progress
}
func NewReader(r *bufio.Reader, progress *Progress) *Reader {
	return &Reader{LineNumber: 1, Offset: 1, EOF: false, r: r, progress: progress}
}