+++ /dev/null
-// Copyright 2017 Tendermint. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package wire_test
-
-import (
- "bytes"
- "fmt"
- "log"
-
- "github.com/tendermint/go-wire"
-)
-
-func Example_RegisterInterface() {
- type Receiver interface{}
- type bcMessage struct {
- Message string
- Height int
- }
-
- type bcResponse struct {
- Status int
- Message string
- }
-
- type bcStatus struct {
- Peers int
- }
-
- var _ = wire.RegisterInterface(
- struct{ Receiver }{},
- wire.ConcreteType{&bcMessage{}, 0x01},
- wire.ConcreteType{&bcResponse{}, 0x02},
- wire.ConcreteType{&bcStatus{}, 0x03},
- )
-}
-
-func Example_EndToEnd_ReadWriteBinary() {
- type Receiver interface{}
- type bcMessage struct {
- Message string
- Height int
- }
-
- type bcResponse struct {
- Status int
- Message string
- }
-
- type bcStatus struct {
- Peers int
- }
-
- var _ = wire.RegisterInterface(
- struct{ Receiver }{},
- wire.ConcreteType{&bcMessage{}, 0x01},
- wire.ConcreteType{&bcResponse{}, 0x02},
- wire.ConcreteType{&bcStatus{}, 0x03},
- )
-
- var n int
- var err error
- buf := new(bytes.Buffer)
- bm := &bcMessage{Message: "Tendermint", Height: 100}
- wire.WriteBinary(bm, buf, &n, &err)
- if err != nil {
- log.Fatalf("writeBinary: %v", err)
- }
- fmt.Printf("Encoded: %x\n", buf.Bytes())
-
- recv := wire.ReadBinary(struct{ Receiver }{}, buf, 0, &n, &err).(struct{ Receiver }).Receiver
- if err != nil {
- log.Fatalf("readBinary: %v", err)
- }
- decoded := recv.(*bcMessage)
- fmt.Printf("Decoded: %#v\n", decoded)
-
- // Output:
- // Encoded: 01010a54656e6465726d696e740164
- // Decoded: &wire_test.bcMessage{Message:"Tendermint", Height:100}
-}