diff options
author | Ondřej Surý <ondrej@sury.org> | 2012-01-30 15:38:19 +0100 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2012-01-30 15:38:19 +0100 |
commit | 4cecda6c347bd6902b960c6a35a967add7070b0d (patch) | |
tree | a462e224ff41ec9f3eb1a0b6e815806f9e8804ad /src/pkg/go/token/serialize.go | |
parent | 6c7ca6e4d4e26e4c8cbe0d183966011b3b088a0a (diff) | |
download | golang-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.go | 20 |
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) } |