mirror of
https://github.com/golang/go.git
synced 2026-04-03 17:59:55 +09:00
Fixes #10275 Change-Id: I2b3d54f3eb0f85d65324ddc3c3b2a797d42a16c9 Reviewed-on: https://go-review.googlesource.com/c/go/+/496537 Run-TryBot: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
55 lines
2.2 KiB
Go
55 lines
2.2 KiB
Go
// 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.
|
|
//
|
|
// Adding encoding/decoding methods to existing types may constitute a breaking change,
|
|
// as they can be used for serialization in communicating with programs
|
|
// written with different library versions.
|
|
// The policy for packages maintained by the Go project is to only allow
|
|
// the addition of marshaling functions if no existing, reasonable marshaling exists.
|
|
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
|
|
}
|