diff options
-rw-r--r-- | types/serialize.go | 6 | ||||
-rw-r--r-- | types/serialize_test.go | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/types/serialize.go b/types/serialize.go index af0a1ed..fd93336 100644 --- a/types/serialize.go +++ b/types/serialize.go @@ -22,6 +22,12 @@ type GetConsistencyProofV1 struct { Second uint64 } +// GetEntriesV1 is a serializable get-entries request +type GetEntriesV1 struct { + Start uint64 + End uint64 +} + // Marshal marshals a TLS-encodable structure func Marshal(item interface{}) ([]byte, error) { serialized, err := tls.Marshal(item) diff --git a/types/serialize_test.go b/types/serialize_test.go index ed51c2c..a06effe 100644 --- a/types/serialize_test.go +++ b/types/serialize_test.go @@ -92,6 +92,9 @@ func TestMarshalUnmarshal(t *testing.T) { case GetConsistencyProofV1: var item GetConsistencyProofV1 err = Unmarshal(b, &item) + case GetEntriesV1: + var item GetEntriesV1 + err = Unmarshal(b, &item) default: t.Errorf("unhandled type in test %q", table.description) } @@ -513,6 +516,17 @@ func test_cases_requests(t *testing.T) []testCaseSerialize { []byte{0x00, 0x00, 0x00, 0x00, 0x1, 0x2, 0x3, 0x4}, // second }, nil), }, + { + description: "valid: GetEntriesV1", + item: GetEntriesV1{ + Start: 0, + End: 16909060, + }, + wantBytes: bytes.Join([][]byte{ + make([]byte, 8), // start + []byte{0x00, 0x00, 0x00, 0x00, 0x1, 0x2, 0x3, 0x4}, // end + }, nil), + }, } } |