A Encoder converts one element between serialized byte stream and in-memory data structure.
| 22 | // A Encoder converts one element between serialized byte stream |
| 23 | // and in-memory data structure. |
| 24 | type Encoder interface { |
| 25 | // Convert into serialized byte stream. |
| 26 | Encode(interface{}) []byte |
| 27 | |
| 28 | // Read byte stream and convert it back to typed data. |
| 29 | Decode([]byte) (int, interface{}) |
| 30 | |
| 31 | // GetSize returns the size in byte after encoding v. |
| 32 | // If v is of type this encoder can not encode, it panics. |
| 33 | GetSize(v interface{}) int |
| 34 | |
| 35 | // GetEncodedSize returns size of the encoded value. |
| 36 | // Encoded element may be var-length. |
| 37 | // This function is used to determine element size without the need of |
| 38 | // encoding it. |
| 39 | GetEncodedSize([]byte) int |
| 40 | } |
| 41 | |
| 42 | // EncoderOf returns a `Encoder` implementation for type of `e` |
| 43 | func EncoderOf(e interface{}) (Encoder, error) { |
no outgoing calls
no test coverage detected