|  | // Copyright 2013 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | // Package encoding defines interfaces shared by other packages that | 
|  | // convert data to and from byte-level and textual representations. | 
|  | // Packages that check for these interfaces include encoding/gob, | 
|  | // encoding/json, and encoding/xml. As a result, implementing an | 
|  | // interface once can make a type useful in multiple encodings. | 
|  | // Standard types that implement these interfaces include time.Time and net.IP. | 
|  | // The interfaces come in pairs that produce and consume encoded data. | 
|  | package encoding | 
|  |  | 
|  | // BinaryMarshaler is the interface implemented by an object that can | 
|  | // marshal itself into a binary form. | 
|  | // | 
|  | // MarshalBinary encodes the receiver into a binary form and returns the result. | 
|  | type BinaryMarshaler interface { | 
|  | MarshalBinary() (data []byte, err error) | 
|  | } | 
|  |  | 
|  | // BinaryUnmarshaler is the interface implemented by an object that can | 
|  | // unmarshal a binary representation of itself. | 
|  | // | 
|  | // UnmarshalBinary must be able to decode the form generated by MarshalBinary. | 
|  | // UnmarshalBinary must copy the data if it wishes to retain the data | 
|  | // after returning. | 
|  | type BinaryUnmarshaler interface { | 
|  | UnmarshalBinary(data []byte) error | 
|  | } | 
|  |  | 
|  | // TextMarshaler is the interface implemented by an object that can | 
|  | // marshal itself into a textual form. | 
|  | // | 
|  | // MarshalText encodes the receiver into UTF-8-encoded text and returns the result. | 
|  | type TextMarshaler interface { | 
|  | MarshalText() (text []byte, err error) | 
|  | } | 
|  |  | 
|  | // TextUnmarshaler is the interface implemented by an object that can | 
|  | // unmarshal a textual representation of itself. | 
|  | // | 
|  | // UnmarshalText must be able to decode the form generated by MarshalText. | 
|  | // UnmarshalText must copy the text if it wishes to retain the text | 
|  | // after returning. | 
|  | type TextUnmarshaler interface { | 
|  | UnmarshalText(text []byte) error | 
|  | } |