1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-04 23:40:26 +08:00
Files
WireGold/gold/head/flags.go
2025-03-13 01:52:35 +09:00

38 lines
586 B
Go

package head
import (
"fmt"
)
const (
hasmorebit FlagsProto = 0x20 << iota
nofragbit
topbit
)
const (
impossiblebit = hasmorebit | nofragbit
flagsbit = topbit | impossiblebit
protobit = ^flagsbit
)
type FlagsProto uint8
func (pf FlagsProto) String() string {
return fmt.Sprintf("%02x", uint8(pf))
}
func (pf FlagsProto) IsValid() bool {
return pf&topbit == 0 &&
pf&impossiblebit != impossiblebit &&
pf.Proto() < ProtoTop
}
func (pf FlagsProto) HasMore() bool {
return pf&hasmorebit != 0
}
func (pf FlagsProto) NoFrag() bool {
return pf&nofragbit != 0
}