2016-03-01 15:57:46 -07:00
|
|
|
// Copyright 2013 The Go Authors. All rights reserved.
|
2013-08-13 22:18:20 -06:00
|
|
|
// 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
|
|
|
|
}
|