func (n *Node) Serialize(writer typedio.Writer) (err os.Error) { err = writer.WriteUint16(n.Id) // id if err != nil { return } err = writer.WriteUint8(n.Status) // status if err != nil { return } err = writer.WriteString(n.Address.String()) // address if err != nil { return } err = writer.WriteUint16(n.TcpPort) // tcp port if err != nil { return } err = writer.WriteUint16(n.UdpPort) // udp port if err != nil { return } err = writer.WriteUint8(uint8(len(n.Rings))) // nb rings if err != nil { return } for _, ring := range n.Rings { // each ring err = writer.WriteUint8(ring.Ring) if err != nil { return } err = writer.WriteString(ring.Token) if err != nil { return } } return nil }