...

Source file src/pkg/encoding/encoding.go

     1	// Copyright 2013 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	// Package encoding defines interfaces shared by other packages that
     6	// convert data to and from byte-level and textual representations.
     7	// Packages that check for these interfaces include encoding/gob,
     8	// encoding/json, and encoding/xml. As a result, implementing an
     9	// interface once can make a type useful in multiple encodings.
    10	// Standard types that implement these interfaces include time.Time and net.IP.
    11	// The interfaces come in pairs that produce and consume encoded data.
    12	package encoding
    13	
    14	// BinaryMarshaler is the interface implemented by an object that can
    15	// marshal itself into a binary form.
    16	//
    17	// MarshalBinary encodes the receiver into a binary form and returns the result.
    18	type BinaryMarshaler interface {
    19		MarshalBinary() (data []byte, err error)
    20	}
    21	
    22	// BinaryUnmarshaler is the interface implemented by an object that can
    23	// unmarshal a binary representation of itself.
    24	//
    25	// UnmarshalBinary must be able to decode the form generated by MarshalBinary.
    26	// UnmarshalBinary must copy the data if it wishes to retain the data
    27	// after returning.
    28	type BinaryUnmarshaler interface {
    29		UnmarshalBinary(data []byte) error
    30	}
    31	
    32	// TextMarshaler is the interface implemented by an object that can
    33	// marshal itself into a textual form.
    34	//
    35	// MarshalText encodes the receiver into UTF-8-encoded text and returns the result.
    36	type TextMarshaler interface {
    37		MarshalText() (text []byte, err error)
    38	}
    39	
    40	// TextUnmarshaler is the interface implemented by an object that can
    41	// unmarshal a textual representation of itself.
    42	//
    43	// UnmarshalText must be able to decode the form generated by MarshalText.
    44	// UnmarshalText must copy the text if it wishes to retain the text
    45	// after returning.
    46	type TextUnmarshaler interface {
    47		UnmarshalText(text []byte) error
    48	}
    49	

View as plain text