github.com/Cloud-Foundations/Dominator@v0.3.4/lib/srpc/coders.go (about) 1 package srpc 2 3 import ( 4 "encoding/gob" 5 "encoding/json" 6 "io" 7 ) 8 9 type coderMaker interface { 10 MakeDecoder(r io.Reader) Decoder 11 MakeEncoder(w io.Writer) Encoder 12 } 13 14 type gobCoder struct{} 15 16 func (c *gobCoder) MakeDecoder(r io.Reader) Decoder { 17 return gob.NewDecoder(r) 18 } 19 20 func (c *gobCoder) MakeEncoder(w io.Writer) Encoder { 21 return gob.NewEncoder(w) 22 } 23 24 type jsonCoder struct{} 25 26 func (c *jsonCoder) MakeDecoder(r io.Reader) Decoder { 27 return json.NewDecoder(r) 28 } 29 30 func (c *jsonCoder) MakeEncoder(w io.Writer) Encoder { 31 return json.NewEncoder(w) 32 }