summaryrefslogtreecommitdiff
path: root/src/pkg/go/token/serialize.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2012-01-30 15:38:19 +0100
committerOndřej Surý <ondrej@sury.org>2012-01-30 15:38:19 +0100
commit4cecda6c347bd6902b960c6a35a967add7070b0d (patch)
treea462e224ff41ec9f3eb1a0b6e815806f9e8804ad /src/pkg/go/token/serialize.go
parent6c7ca6e4d4e26e4c8cbe0d183966011b3b088a0a (diff)
downloadgolang-4cecda6c347bd6902b960c6a35a967add7070b0d.tar.gz
Imported Upstream version 2012.01.27upstream-weekly/2012.01.27
Diffstat (limited to 'src/pkg/go/token/serialize.go')
-rw-r--r--src/pkg/go/token/serialize.go20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/pkg/go/token/serialize.go b/src/pkg/go/token/serialize.go
index 80a3323f9..042d6abdf 100644
--- a/src/pkg/go/token/serialize.go
+++ b/src/pkg/go/token/serialize.go
@@ -5,9 +5,8 @@
package token
import (
- "gob"
+ "encoding/gob"
"io"
- "os"
)
type serializedFile struct {
@@ -24,10 +23,19 @@ type serializedFileSet struct {
Files []serializedFile
}
+func (s *serializedFileSet) Read(r io.Reader) error {
+ return gob.NewDecoder(r).Decode(s)
+}
+
+func (s *serializedFileSet) Write(w io.Writer) error {
+ return gob.NewEncoder(w).Encode(s)
+}
+
// Read reads the fileset from r into s; s must not be nil.
-func (s *FileSet) Read(r io.Reader) os.Error {
+// If r does not also implement io.ByteReader, it will be wrapped in a bufio.Reader.
+func (s *FileSet) Read(r io.Reader) error {
var ss serializedFileSet
- if err := gob.NewDecoder(r).Decode(&ss); err != nil {
+ if err := ss.Read(r); err != nil {
return err
}
@@ -46,7 +54,7 @@ func (s *FileSet) Read(r io.Reader) os.Error {
}
// Write writes the fileset s to w.
-func (s *FileSet) Write(w io.Writer) os.Error {
+func (s *FileSet) Write(w io.Writer) error {
var ss serializedFileSet
s.mutex.Lock()
@@ -58,5 +66,5 @@ func (s *FileSet) Write(w io.Writer) os.Error {
ss.Files = files
s.mutex.Unlock()
- return gob.NewEncoder(w).Encode(ss)
+ return ss.Write(w)
}