| // UNREVIEWED | |
| // Copyright 2021 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package pkgbits | |
| type Code interface { | |
| Marker() SyncMarker | |
| Value() int | |
| } | |
| type CodeVal int | |
| func (c CodeVal) Marker() SyncMarker { return SyncVal } | |
| func (c CodeVal) Value() int { return int(c) } | |
| const ( | |
| ValBool CodeVal = iota | |
| ValString | |
| ValInt64 | |
| ValBigInt | |
| ValBigRat | |
| ValBigFloat | |
| ) | |
| type CodeType int | |
| func (c CodeType) Marker() SyncMarker { return SyncType } | |
| func (c CodeType) Value() int { return int(c) } | |
| const ( | |
| TypeBasic CodeType = iota | |
| TypeNamed | |
| TypePointer | |
| TypeSlice | |
| TypeArray | |
| TypeChan | |
| TypeMap | |
| TypeSignature | |
| TypeStruct | |
| TypeInterface | |
| TypeUnion | |
| TypeTypeParam | |
| ) | |
| type CodeObj int | |
| func (c CodeObj) Marker() SyncMarker { return SyncCodeObj } | |
| func (c CodeObj) Value() int { return int(c) } | |
| const ( | |
| ObjAlias CodeObj = iota | |
| ObjConst | |
| ObjType | |
| ObjFunc | |
| ObjVar | |
| ObjStub | |
| ) |