1
0
mirror of https://github.com/golang/go synced 2024-11-21 20:54:45 -07:00

io: add ByteScanner, RuneScanner interfaces

R=r, rsc
CC=golang-dev
https://golang.org/cl/4530069
This commit is contained in:
Robert Griesemer 2011-05-26 11:03:52 -07:00
parent 9cd3372f9b
commit 5b1fb9d5c6

View File

@ -162,6 +162,18 @@ type ByteReader interface {
ReadByte() (c byte, err os.Error)
}
// ByteScanner is the interface that adds the UnreadByte method to the
// basic ReadByte method.
//
// UnreadByte causes the next call to ReadByte to return the same byte
// as the previous call to ReadByte.
// It may be an error to call UnreadByte twice without an intervening
// call to ReadByte.
type ByteScanner interface {
ByteReader
UnreadByte() os.Error
}
// RuneReader is the interface that wraps the ReadRune method.
//
// ReadRune reads a single UTF-8 encoded Unicode character
@ -171,6 +183,18 @@ type RuneReader interface {
ReadRune() (rune int, size int, err os.Error)
}
// RuneScanner is the interface that adds the UnreadRune method to the
// basic ReadRune method.
//
// UnreadRune causes the next call to ReadRune to return the same rune
// as the previous call to ReadRune.
// It may be an error to call UnreadRune twice without an intervening
// call to ReadRune.
type RuneScanner interface {
RuneReader
UnreadRune() os.Error
}
// WriteString writes the contents of the string s to w, which accepts an array of bytes.
func WriteString(w Writer, s string) (n int, err os.Error) {
return w.Write([]byte(s))