github.com/onflow/atree@v0.6.0/cmd/stress/typeinfo.go (about) 1 /* 2 * Atree - Scalable Arrays and Ordered Maps 3 * 4 * Copyright 2021 Dapper Labs, Inc. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package main 20 21 import ( 22 "github.com/onflow/atree" 23 24 "github.com/fxamacker/cbor/v2" 25 ) 26 27 type testTypeInfo struct { 28 value uint64 29 } 30 31 var _ atree.TypeInfo = testTypeInfo{} 32 33 func (i testTypeInfo) Encode(e *cbor.StreamEncoder) error { 34 return e.EncodeUint64(i.value) 35 } 36 37 func (i testTypeInfo) Equal(other atree.TypeInfo) bool { 38 otherTestTypeInfo, ok := other.(testTypeInfo) 39 return ok && i.value == otherTestTypeInfo.value 40 } 41 42 func decodeTypeInfo(dec *cbor.StreamDecoder) (atree.TypeInfo, error) { 43 value, err := dec.DecodeUint64() 44 if err != nil { 45 return nil, err 46 } 47 48 return testTypeInfo{value: value}, nil 49 }