srpc/encoder.go

54 lines
780 B
Go

package srpc
import (
"io"
"olznet.de/ssob"
)
type IEncoder interface {
Encode(e interface{}) error
}
type IDecoder interface {
Decode(e interface{}) error
}
type IEncoderHandler interface {
NewEncoder(w io.Writer) IEncoder
}
type IDecoderHandler interface {
NewDecoder(r io.Reader) IDecoder
}
type IEncoderDecoder interface {
IEncoderHandler
IDecoderHandler
}
type Encoder struct {
}
func (e *Encoder) NewEncoder(w io.Writer) IEncoder {
return ssob.NewEncoder(w)
}
type Decoder struct {
}
func (d *Decoder) NewDecoder(r io.Reader) IDecoder {
return ssob.NewDecoder(r)
}
type EncoderDecoder struct {
IEncoderHandler
IDecoderHandler
}
func NewEncoderDecoder() IEncoderDecoder {
enc := new(Encoder)
dec := new(Decoder)
return &EncoderDecoder{enc, dec}
}