Documentation
¶
Index ¶
- Constants
- Variables
- func Any(v interface{}) *_any
- func Binary(v io.Reader) *_binary
- func Error(v error) *_error
- func Float64(v float64) *_float64
- func Integer(v int) *_int
- func Map(m map[string]interface{}) _map
- func String(v string) *_string
- func Uinteger(v uint) *_uint
- type Convert
- type Serializable
- type SerializableParam
- type SerializableWrap
Examples ¶
Constants ¶
View Source
const ( ErrUnsupportedUseRead erro.String = "Serialize() method unsupported, use the Read() method instead" ErrUnsupported erro.State = "method: unsupported" )
Variables ¶
Functions ¶
Types ¶
type Convert ¶
type Convert []Serializable
func (Convert) ToInterface ¶
func (in Convert) ToInterface() []interface{}
type Serializable ¶
Example (Assignment) ¶
// Serialized values can be assigned to a variable before being used
var e = Error(fmt.Errorf("some bad thing"))
var f = Float64(1.4)
var i = Integer(10)
var s = String("string")
var u = Uinteger(11)
fmt.Printf("Error: %v\nFloat: %f\nInt: %d\nString: %q\nUint: %d\n", e, f.Interface(), i.Interface(), s, u.Interface())
Output: Error: some bad thing Float: 1.400000 Int: 10 String: "string" Uint: 11
Example (Binary) ¶
r := strings.NewReader("This is streamed data")
// binary doesn't serialize to a string, but it
// provides a io.Reader from the Interface() method
b := Binary(r)
io.Copy(os.Stdout, b.Interface().(io.Reader))
b.Interface().(io.Seeker).Seek(0, 0)
fmt.Println("\n----")
// There is also the hidden (io.Reader) interface
io.Copy(os.Stdout, b)
Output: This is streamed data ---- This is streamed data
Example (Custom) ¶
pepperoni := &pizza{crust: "thin", toppings: []string{"cheese", "pepperoni"}}
fmt.Println(pepperoni.Serialize())
cheese := &pizza{}
cheese.Unserialize("crust:cheese top:mozzarella,gorgonzola,goat,parmesan")
fmt.Println(cheese)
Output: crust:thin top:cheese,pepperoni <nil> &{cheese [mozzarella gorgonzola goat parmesan]}
Example (Interface) ¶
var e = Error(nil)
var f = Float64(0)
var i = Integer(0)
var s = String("")
var u = Uinteger(0)
e.Unserialize("something bad happened")
f.Unserialize("3.14")
i.Unserialize("10")
s.Unserialize("pass")
u.Unserialize("20")
fmt.Printf("%v\n%f\n%d\n%q\n%d", e.Interface(), f.Interface(), i.Interface(), s.Interface(), u.Interface())
Output: something bad happened 3.140000 10 "pass" 20
Example (Params) ¶
var e = ErrParam
var f = F64Param
var i = IntParam
var s = StrParam
var u = UintParam
e.Unserialize("something bad happened")
f.Unserialize("3.14")
i.Unserialize("10")
s.Unserialize("pass")
u.Unserialize("20")
fmt.Printf("%q\n%q\n%q\n%q\n%q", e, f, i, s, u)
Output: "" "" "" "" ""
Example (Short_func) ¶
// Assign the serialize function to a short function name for later usage
var er = Error
var fl = Float64
var in = Integer
var st = String
var ui = Uinteger
var a, b, c = er(fmt.Errorf("error A")), er(fmt.Errorf("error B")), er(fmt.Errorf("error C"))
var d, e, f = fl(1.5), fl(2.6), fl(3.7)
var g, h, i = in(100), in(-100), in(1000000)
var j, k, l = st("The"), st("Quick"), st("Brown")
var m, n, o = ui(400), ui(800), ui(9223372036854775808)
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
fmt.Printf("%v\n", c)
fmt.Printf("%f\n", *d)
fmt.Printf("%f\n", *e)
fmt.Printf("%f\n", *f)
fmt.Printf("%d\n", *g)
fmt.Printf("%d\n", *h)
fmt.Printf("%d\n", *i)
fmt.Printf("%s\n", j)
fmt.Printf("%s\n", k)
fmt.Printf("%s\n", l)
fmt.Printf("%d\n", *m)
fmt.Printf("%d\n", *n)
fmt.Printf("%d\n", *o)
Output: error A error B error C 1.500000 2.600000 3.700000 100 -100 1000000 The Quick Brown 400 800 9223372036854775808
Example (String) ¶
var e = Error(nil)
var f = Float64(0)
var i = Integer(0)
var s = String("")
var u = Uinteger(0)
e.Unserialize("something bad happened")
f.Unserialize("3.14")
i.Unserialize("10")
s.Unserialize("pass")
u.Unserialize("20")
fmt.Printf("%s\n%s\n%s\n%s\n%s", e, f, i, s, u)
Output: something bad happened 3.14 10 pass 20
Example (Unserialize) ¶
var e = Error(nil)
var f = Float64(0)
var i = Integer(0)
var s = String("")
var u = Uinteger(0)
e.Unserialize("something bad happened")
f.Unserialize("3.14")
i.Unserialize("10")
s.Unserialize("pass")
u.Unserialize("20")
es, _ := e.Serialize()
fs, _ := f.Serialize()
is, _ := i.Serialize()
ss, _ := s.Serialize()
us, _ := u.Serialize()
fmt.Printf("%s\n%s\n%s\n%s\n%s", es, fs, is, ss, us)
Output: something bad happened 3.14 10 pass 20
type SerializableParam ¶
type SerializableParam interface {
Serializable
Interface() interface{}
Param() Serializable
}
https://github.com/socketio/socket.io/tree/master/examples/custom-parsers
type SerializableWrap ¶
type SerializableWrap interface {
Serializable
Interface() interface{}
}
Click to show internal directories.
Click to hide internal directories.