Commit 48b90bbc authored by Russ Cox's avatar Russ Cox

encoding: new package

See golang.org/s/go12encoding for design.

R=r
CC=golang-dev
https://golang.org/cl/12541051
parent 85f3acd7
...@@ -992,6 +992,8 @@ install(char *dir) ...@@ -992,6 +992,8 @@ install(char *dir)
vadd(&compile, bprintf(&b, "GOOS_%s", goos)); vadd(&compile, bprintf(&b, "GOOS_%s", goos));
vadd(&compile, "-D"); vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "GOARCH_%s", goarch)); vadd(&compile, bprintf(&b, "GOARCH_%s", goarch));
vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "GOOS_GOARCH_%s_%s", goos, goarch));
} }
bpathf(&b, "%s/%s", workdir, lastelem(files.p[i])); bpathf(&b, "%s/%s", workdir, lastelem(files.p[i]));
...@@ -1265,6 +1267,7 @@ static char *buildorder[] = { ...@@ -1265,6 +1267,7 @@ static char *buildorder[] = {
"pkg/os", "pkg/os",
"pkg/reflect", "pkg/reflect",
"pkg/fmt", "pkg/fmt",
"pkg/encoding",
"pkg/encoding/json", "pkg/encoding/json",
"pkg/flag", "pkg/flag",
"pkg/path/filepath", "pkg/path/filepath",
...@@ -1317,6 +1320,7 @@ static char *cleantab[] = { ...@@ -1317,6 +1320,7 @@ static char *cleantab[] = {
"pkg/bufio", "pkg/bufio",
"pkg/bytes", "pkg/bytes",
"pkg/container/heap", "pkg/container/heap",
"pkg/encoding",
"pkg/encoding/base64", "pkg/encoding/base64",
"pkg/encoding/json", "pkg/encoding/json",
"pkg/errors", "pkg/errors",
......
// 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
}
...@@ -192,12 +192,13 @@ var pkgDeps = map[string][]string{ ...@@ -192,12 +192,13 @@ var pkgDeps = map[string][]string{
"debug/gosym": {"L4"}, "debug/gosym": {"L4"},
"debug/macho": {"L4", "OS", "debug/dwarf"}, "debug/macho": {"L4", "OS", "debug/dwarf"},
"debug/pe": {"L4", "OS", "debug/dwarf"}, "debug/pe": {"L4", "OS", "debug/dwarf"},
"encoding": {"L4"},
"encoding/ascii85": {"L4"}, "encoding/ascii85": {"L4"},
"encoding/asn1": {"L4", "math/big"}, "encoding/asn1": {"L4", "math/big"},
"encoding/csv": {"L4"}, "encoding/csv": {"L4"},
"encoding/gob": {"L4", "OS"}, "encoding/gob": {"L4", "OS", "encoding"},
"encoding/hex": {"L4"}, "encoding/hex": {"L4"},
"encoding/json": {"L4"}, "encoding/json": {"L4", "encoding"},
"encoding/pem": {"L4"}, "encoding/pem": {"L4"},
"encoding/xml": {"L4"}, "encoding/xml": {"L4"},
"flag": {"L4", "OS"}, "flag": {"L4", "OS"},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment