github.com/datachainlab/burrow@v0.25.0/execution/exec/call_event.go (about) 1 package exec 2 3 type CallType uint32 4 5 const ( 6 CallTypeCall = CallType(0x00) 7 CallTypeCode = CallType(0x01) 8 CallTypeDelegate = CallType(0x02) 9 CallTypeStatic = CallType(0x03) 10 CallTypeSNative = CallType(0x04) 11 ) 12 13 var nameFromCallType = map[CallType]string{ 14 CallTypeCall: "Call", 15 CallTypeCode: "CallCode", 16 CallTypeDelegate: "DelegateCall", 17 CallTypeStatic: "StaticCall", 18 CallTypeSNative: "SNativeCall", 19 } 20 21 var callTypeFromName = make(map[string]CallType) 22 23 func init() { 24 for t, n := range nameFromCallType { 25 callTypeFromName[n] = t 26 } 27 } 28 29 func CallTypeFromString(name string) CallType { 30 return callTypeFromName[name] 31 } 32 33 func (ct CallType) String() string { 34 name, ok := nameFromCallType[ct] 35 if ok { 36 return name 37 } 38 return "UnknownCallType" 39 } 40 41 func (ct CallType) MarshalText() ([]byte, error) { 42 return []byte(ct.String()), nil 43 } 44 45 func (ct *CallType) UnmarshalText(data []byte) error { 46 *ct = CallTypeFromString(string(data)) 47 return nil 48 }