Documentation
¶
Overview ¶
Package capabilitygrant is the ADR-0042 M4 retrofit of the rowmarshall.CapabilityGrant hand-coded writer. The generator produces a byte-equivalent `Marshal` over a SoA Columns buffer; the existing `rowmarshall.BenchmarkRowBinaryMarshal` (51 ns/op) is the regression gate.
The DTO uses the codec grammar: scalar T for ExactlyOne, option.Option[T] for ZeroToOne, and the `u32Range:<col>` sub-column suffix for the validity range's two physical columns. NaturalKey is a plain byte slice; Ts and ExpiresAt are time.Time, matching the facts entity builder's SetTimestamp / SetLifecycle signatures verbatim (strict 1:1 — the seconds-resolution DateTime landing happens inside the builder).
Index ¶
- Variables
- func CapabilityGrantAddSections[StringArrayAttr CapabilityGrantStringArrayAttrI, ...](dml DML, row CapabilityGrant) (err error)
- func CapabilityGrantBuildEntities[StringArrayAttr CapabilityGrantStringArrayAttrI, ...](dml DML, c *CapabilityGrantColumns) (err error)
- func CapabilityGrantEmitSectionBool[BoolAttr CapabilityGrantBoolAttrI, ...](boolSec BoolSec, row CapabilityGrant) (err error)
- func CapabilityGrantEmitSectionForeignKey[ForeignKeyAttr CapabilityGrantForeignKeyAttrI, ...](foreignKeySec ForeignKeySec, row CapabilityGrant) (err error)
- func CapabilityGrantEmitSectionStringArray[StringArrayAttr CapabilityGrantStringArrayAttrI, ...](stringArraySec StringArraySec, row CapabilityGrant) (err error)
- func CapabilityGrantEmitSectionSymbol[SymbolAttr CapabilityGrantSymbolAttrI, ...](symbolSec SymbolSec, row CapabilityGrant) (err error)
- func CapabilityGrantEmitSectionU32Range[U32RangeAttr CapabilityGrantU32RangeAttrI, ...](u32RangeSec U32RangeSec, row CapabilityGrant) (err error)
- func CapabilityGrantFillFromArrow[StringArrayAttrs CapabilityGrantStringArrayAttrsReadI, ...](c *CapabilityGrantColumns, n int, idCol *array.Uint64, nkCol *array.Binary, ...) (err error)
- type CapabilityGrant
- type CapabilityGrantBoolAttrI
- type CapabilityGrantBoolAttrsReadI
- type CapabilityGrantBoolMembsReadI
- type CapabilityGrantBoolSecI
- type CapabilityGrantCodec
- type CapabilityGrantColumns
- func (c *CapabilityGrantColumns) Append(row CapabilityGrant)
- func (c *CapabilityGrantColumns) Len() int
- func (c *CapabilityGrantColumns) Marshal(w io.Writer) (err error)
- func (c *CapabilityGrantColumns) Row(i int) (row CapabilityGrant)
- func (c *CapabilityGrantColumns) Unmarshal(rec arrow.Record) (err error)
- type CapabilityGrantEntityI
- type CapabilityGrantForeignKeyAttrI
- type CapabilityGrantForeignKeyAttrsReadI
- type CapabilityGrantForeignKeyMembsReadI
- type CapabilityGrantForeignKeySecI
- type CapabilityGrantStringArrayAttrI
- type CapabilityGrantStringArrayAttrsReadI
- type CapabilityGrantStringArrayMembsReadI
- type CapabilityGrantStringArraySecI
- type CapabilityGrantSymbolAttrI
- type CapabilityGrantSymbolAttrsReadI
- type CapabilityGrantSymbolMembsReadI
- type CapabilityGrantSymbolSecI
- type CapabilityGrantU32RangeAttrI
- type CapabilityGrantU32RangeAttrsReadI
- type CapabilityGrantU32RangeMembsReadI
- type CapabilityGrantU32RangeSecI
Constants ¶
This section is empty.
Variables ¶
var CapabilityGrantActiveFields = sync.OnceValue(func() []int { active := map[string]bool{"bool": true, "foreignKey": true, "stringArray": true, "symbol": true, "u32Range": true} schema := cbdml.CreateSchemaFacts() out := make([]int, 0, 4+len(active)*8) for i, f := range schema.Fields() { name := f.Name switch { case strings.HasPrefix(name, "id:"), strings.HasPrefix(name, "ts:"), strings.HasPrefix(name, "lc:"): out = append(out, i) case strings.HasPrefix(name, "tv:"): rest := name[3:] colon := strings.IndexByte(rest, ':') if colon < 0 { continue } if active[rest[:colon]] { out = append(out, i) } } } return out })
CapabilityGrantActiveFields is the column-index subset this kind populates in the boxer.facts Arrow schema. Lazily computed once via sync.OnceValue: scans cbdml.CreateSchemaFacts()'s tv:<section>:... field names against this kind's active sections plus the three plain prefixes (id:, ts:, lc:). Driven through RecordBuilder. SetActiveFields to skip per-row emit walks for unused columns.
var CapabilityGrantActiveSections = []int{1, 4, 9, 10, 16}
CapabilityGrantActiveSections is the dml_cbor section-index subset this kind populates. Passed to InEntityFacts.SetActiveSections so the builder skips beginSection list-slot work for inactive sections.
var PackageProps = packageprops.Props{ WASMWASI: packageprops.WASMBlocked, WASMJS: packageprops.WASMBlocked, WASMFreestanding: packageprops.WASMBlocked, }
PackageProps records this package's curated properties (ADR-0080). Seeded by `boxer code analysis golang wasmsurvey props generate`; curate by hand. The same group's `props verify` reconciles it.
Functions ¶
func CapabilityGrantAddSections ¶ added in v0.0.12
func CapabilityGrantAddSections[ StringArrayAttr CapabilityGrantStringArrayAttrI, StringArraySec CapabilityGrantStringArraySecI[StringArrayAttr, Ent], SymbolAttr CapabilityGrantSymbolAttrI, SymbolSec CapabilityGrantSymbolSecI[SymbolAttr, Ent], U32RangeAttr CapabilityGrantU32RangeAttrI, U32RangeSec CapabilityGrantU32RangeSecI[U32RangeAttr, Ent], BoolAttr CapabilityGrantBoolAttrI, BoolSec CapabilityGrantBoolSecI[BoolAttr, Ent], ForeignKeyAttr CapabilityGrantForeignKeyAttrI, ForeignKeySec CapabilityGrantForeignKeySecI[ForeignKeyAttr, Ent], Ent any, DML CapabilityGrantEntityI[ StringArrayAttr, StringArraySec, SymbolAttr, SymbolSec, U32RangeAttr, U32RangeSec, BoolAttr, BoolSec, ForeignKeyAttr, ForeignKeySec, Ent, ], ](dml DML, row CapabilityGrant) (err error)
CapabilityGrantAddSections contributes this kind's tagged sections to the OPEN entity on dml — the BuildEntities body without the entity frame. The caller owns BeginEntity / plain setters / CommitEntity.
func CapabilityGrantBuildEntities ¶
func CapabilityGrantBuildEntities[ StringArrayAttr CapabilityGrantStringArrayAttrI, StringArraySec CapabilityGrantStringArraySecI[StringArrayAttr, Ent], SymbolAttr CapabilityGrantSymbolAttrI, SymbolSec CapabilityGrantSymbolSecI[SymbolAttr, Ent], U32RangeAttr CapabilityGrantU32RangeAttrI, U32RangeSec CapabilityGrantU32RangeSecI[U32RangeAttr, Ent], BoolAttr CapabilityGrantBoolAttrI, BoolSec CapabilityGrantBoolSecI[BoolAttr, Ent], ForeignKeyAttr CapabilityGrantForeignKeyAttrI, ForeignKeySec CapabilityGrantForeignKeySecI[ForeignKeyAttr, Ent], Ent any, DML CapabilityGrantEntityI[ StringArrayAttr, StringArraySec, SymbolAttr, SymbolSec, U32RangeAttr, U32RangeSec, BoolAttr, BoolSec, ForeignKeyAttr, ForeignKeySec, Ent, ], ](dml DML, c *CapabilityGrantColumns) (err error)
CapabilityGrantBuildEntities walks c row-by-row, drives dml's entity / section chain, and returns once every row has been committed. The dml argument's concrete type binds every type parameter via Go's type inference at the call site.
func CapabilityGrantEmitSectionBool ¶ added in v0.0.20
func CapabilityGrantEmitSectionBool[ BoolAttr CapabilityGrantBoolAttrI, BoolSec CapabilityGrantBoolSecI[BoolAttr, Ent], Ent any, ](boolSec BoolSec, row CapabilityGrant) (err error)
CapabilityGrantEmitSectionBool writes this kind's bool attributes into an ALREADY-OPEN section frame, and does not close it. The caller owns the frame: one kind's AddSections, or a builder deferring the close until every component that shares the section has written.
func CapabilityGrantEmitSectionForeignKey ¶ added in v0.0.20
func CapabilityGrantEmitSectionForeignKey[ ForeignKeyAttr CapabilityGrantForeignKeyAttrI, ForeignKeySec CapabilityGrantForeignKeySecI[ForeignKeyAttr, Ent], Ent any, ](foreignKeySec ForeignKeySec, row CapabilityGrant) (err error)
CapabilityGrantEmitSectionForeignKey writes this kind's foreignKey attributes into an ALREADY-OPEN section frame, and does not close it. The caller owns the frame: one kind's AddSections, or a builder deferring the close until every component that shares the section has written.
func CapabilityGrantEmitSectionStringArray ¶ added in v0.0.20
func CapabilityGrantEmitSectionStringArray[ StringArrayAttr CapabilityGrantStringArrayAttrI, StringArraySec CapabilityGrantStringArraySecI[StringArrayAttr, Ent], Ent any, ](stringArraySec StringArraySec, row CapabilityGrant) (err error)
CapabilityGrantEmitSectionStringArray writes this kind's stringArray attributes into an ALREADY-OPEN section frame, and does not close it. The caller owns the frame: one kind's AddSections, or a builder deferring the close until every component that shares the section has written.
func CapabilityGrantEmitSectionSymbol ¶ added in v0.0.20
func CapabilityGrantEmitSectionSymbol[ SymbolAttr CapabilityGrantSymbolAttrI, SymbolSec CapabilityGrantSymbolSecI[SymbolAttr, Ent], Ent any, ](symbolSec SymbolSec, row CapabilityGrant) (err error)
CapabilityGrantEmitSectionSymbol writes this kind's symbol attributes into an ALREADY-OPEN section frame, and does not close it. The caller owns the frame: one kind's AddSections, or a builder deferring the close until every component that shares the section has written.
func CapabilityGrantEmitSectionU32Range ¶ added in v0.0.20
func CapabilityGrantEmitSectionU32Range[ U32RangeAttr CapabilityGrantU32RangeAttrI, U32RangeSec CapabilityGrantU32RangeSecI[U32RangeAttr, Ent], Ent any, ](u32RangeSec U32RangeSec, row CapabilityGrant) (err error)
CapabilityGrantEmitSectionU32Range writes this kind's u32Range attributes into an ALREADY-OPEN section frame, and does not close it. The caller owns the frame: one kind's AddSections, or a builder deferring the close until every component that shares the section has written.
func CapabilityGrantFillFromArrow ¶
func CapabilityGrantFillFromArrow[ StringArrayAttrs CapabilityGrantStringArrayAttrsReadI, StringArrayMembs CapabilityGrantStringArrayMembsReadI, SymbolAttrs CapabilityGrantSymbolAttrsReadI, SymbolMembs CapabilityGrantSymbolMembsReadI, U32RangeAttrs CapabilityGrantU32RangeAttrsReadI, U32RangeMembs CapabilityGrantU32RangeMembsReadI, BoolAttrs CapabilityGrantBoolAttrsReadI, BoolMembs CapabilityGrantBoolMembsReadI, ForeignKeyAttrs CapabilityGrantForeignKeyAttrsReadI, ForeignKeyMembs CapabilityGrantForeignKeyMembsReadI, ]( c *CapabilityGrantColumns, n int, idCol *array.Uint64, nkCol *array.Binary, tsCol *array.Timestamp, lcCol *array.Timestamp, stringArrayAttrs StringArrayAttrs, stringArrayMembs StringArrayMembs, symbolAttrs SymbolAttrs, symbolMembs SymbolMembs, u32RangeAttrs U32RangeAttrs, u32RangeMembs U32RangeMembs, boolAttrs BoolAttrs, boolMembs BoolMembs, foreignKeyAttrs ForeignKeyAttrs, foreignKeyMembs ForeignKeyMembs, ) (err error)
CapabilityGrantFillFromArrow walks rec row-by-row and appends each entity's plain + tagged-section values into c. Plain columns enter as concrete Arrow accessors; per-section Attrs + Membs bind through type-parameter interfaces.
Types ¶
type CapabilityGrant ¶
type CapabilityGrant struct {
Id uint64 `lw:",id"`
NaturalKey []byte `lw:",naturalKey"`
Ts time.Time `lw:",ts"` // truncated to seconds on the wire
// ExpiresAt is a time.Time; the zero value (the Go default when not
// set) lands as the "no TTL" sentinel the way the facts builder maps
// a zero time. (option.Option is reserved for ZeroToOne *tagged*
// values; plain columns are mandatory and rely on Go's zero value.)
ExpiresAt time.Time `lw:",expiresAt"`
Subject string `lw:"cgSubject,stringArray"` // free text — high-card
Capability string `lw:"cgCapability,symbol"` // enum — LowCardinality(String) on disk
ValidityBegin uint32 `lw:"cgValidity,u32Range:beginIncl"`
ValidityEnd uint32 `lw:"cgValidity,u32Range:endExcl"`
Active bool `lw:"cgActive,bool"`
GranterFact option.Option[uint64] `lw:"cgGranter,foreignKey"` // None ⇒ no granter link
// contains filtered or unexported fields
}
CapabilityGrant is one row of a capability grant in boxer.facts. Mirrors rowmarshall.CapabilityGrant on the wire; differences:
- `*int64` → `option.Option[int64]` for ExpiresAt
- `*uint64` → `option.Option[uint64]` for GranterFact
- Same plain columns, same tagged sections, same kind ids (now resolved from vdd at init instead of hardcoded constants).
func CapabilityGrantReadRow ¶ added in v0.0.12
func CapabilityGrantReadRow[ StringArrayAttrs CapabilityGrantStringArrayAttrsReadI, StringArrayMembs CapabilityGrantStringArrayMembsReadI, SymbolAttrs CapabilityGrantSymbolAttrsReadI, SymbolMembs CapabilityGrantSymbolMembsReadI, U32RangeAttrs CapabilityGrantU32RangeAttrsReadI, U32RangeMembs CapabilityGrantU32RangeMembsReadI, BoolAttrs CapabilityGrantBoolAttrsReadI, BoolMembs CapabilityGrantBoolMembsReadI, ForeignKeyAttrs CapabilityGrantForeignKeyAttrsReadI, ForeignKeyMembs CapabilityGrantForeignKeyMembsReadI, ]( i int, stringArrayAttrs StringArrayAttrs, stringArrayMembs StringArrayMembs, symbolAttrs SymbolAttrs, symbolMembs SymbolMembs, u32RangeAttrs U32RangeAttrs, u32RangeMembs U32RangeMembs, boolAttrs BoolAttrs, boolMembs BoolMembs, foreignKeyAttrs ForeignKeyAttrs, foreignKeyMembs ForeignKeyMembs, ) (row CapabilityGrant, present bool, err error)
CapabilityGrantReadRow reads row i as one optional CapabilityGrant component: presence- gated (a row carrying none of the kind's memberships yields present=false), membership-matched. A slot carrying more attributes than this kind's shape admits is an error, for every shape including containers. Plain- bound fields stay zero — the caller owns the envelope. The Attrs/Membs readers bind by type inference at the call site, as with FillFromArrow.
type CapabilityGrantBoolAttrI ¶
type CapabilityGrantBoolAttrI interface {
dmlruntime.InAttributeMembershipLowCardRefPI
EndAttributeP()
}
CapabilityGrantBoolAttrI is the InAttr-side view of the bool section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.
type CapabilityGrantBoolAttrsReadI ¶
type CapabilityGrantBoolAttrsReadI interface {
GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) bool
GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}
CapabilityGrantBoolAttrsReadI is the Attributes-side view of the bool section.
type CapabilityGrantBoolMembsReadI ¶
type CapabilityGrantBoolMembsReadI interface {
GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}
CapabilityGrantBoolMembsReadI is the Memberships-side view of the bool section.
type CapabilityGrantBoolSecI ¶
type CapabilityGrantBoolSecI[Attr any, Ent any] interface { BeginAttribute(value bool) Attr EndSection() Ent }
CapabilityGrantBoolSecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.
type CapabilityGrantCodec ¶
type CapabilityGrantCodec struct{}
CapabilityGrantCodec is the buscodec.CodecI bridge for CapabilityGrant. Encodes one row through dml_cbor; decodes via cborarrow.Convert + ra-Unmarshal + Row(0). Auto-registered in init() so callers using buscodec.Encode / Decode route through here instead of the CBOR fallback.
func (*CapabilityGrantCodec) ContentType ¶
func (inst *CapabilityGrantCodec) ContentType() (ct string)
func (*CapabilityGrantCodec) Decode ¶
func (inst *CapabilityGrantCodec) Decode(b []byte, v any) (err error)
func (*CapabilityGrantCodec) Encode ¶
func (inst *CapabilityGrantCodec) Encode(v any) (b []byte, err error)
func (*CapabilityGrantCodec) Name ¶
func (inst *CapabilityGrantCodec) Name() (n string)
type CapabilityGrantColumns ¶
type CapabilityGrantColumns struct {
Id []uint64
NaturalKey [][]byte
Ts []time.Time
ExpiresAt []time.Time
Subject []string
Capability []string
ValidityBegin []uint32
ValidityEnd []uint32
Active []bool
GranterFactVal []uint64
GranterFactHas []bool
}
CapabilityGrantColumns is the SoA storage for batches of CapabilityGrant rows. All slices grow in lockstep — Len returns the row count.
func (*CapabilityGrantColumns) Append ¶
func (c *CapabilityGrantColumns) Append(row CapabilityGrant)
Append pushes one AoS record into the SoA buffers.
Aliasing: slice and pointer fields (`[]T`, `*roaring.Bitmap`) are stored by reference, not copied. Callers must not mutate row.<F> after Append unless they want Marshal to read the mutation. Scalar fields (T, Option[T]) are copied by value.
func (*CapabilityGrantColumns) Len ¶
func (c *CapabilityGrantColumns) Len() int
Len returns the number of rows currently in the batch.
func (*CapabilityGrantColumns) Marshal ¶
func (c *CapabilityGrantColumns) Marshal(w io.Writer) (err error)
Marshal writes the SoA buffer to w as the sparse-CBOR wire format produced through factsschema/dml_cbor. Thin wrapper around CapabilityGrantBuildEntities — the per-row chain lives there and works against any leeway-DML class that structurally satisfies CapabilityGrantEntityI.
func (*CapabilityGrantColumns) Row ¶
func (c *CapabilityGrantColumns) Row(i int) (row CapabilityGrant)
Row reconstructs entity i as an AoS CapabilityGrant record. Inverse of Append: slice / pointer fields are shared by reference (no defensive copy); scalar fields and Option[T] are copied.
func (*CapabilityGrantColumns) Unmarshal ¶
func (c *CapabilityGrantColumns) Unmarshal(rec arrow.Record) (err error)
Unmarshal appends one row to c per entity in rec, projecting the boxer.facts columns through factsschema/ra. Thin wrapper around CapabilityGrantFillFromArrow — the per-row decode lives there.
type CapabilityGrantEntityI ¶
type CapabilityGrantEntityI[ StringArrayAttr CapabilityGrantStringArrayAttrI, StringArraySec CapabilityGrantStringArraySecI[StringArrayAttr, Ent], SymbolAttr CapabilityGrantSymbolAttrI, SymbolSec CapabilityGrantSymbolSecI[SymbolAttr, Ent], U32RangeAttr CapabilityGrantU32RangeAttrI, U32RangeSec CapabilityGrantU32RangeSecI[U32RangeAttr, Ent], BoolAttr CapabilityGrantBoolAttrI, BoolSec CapabilityGrantBoolSecI[BoolAttr, Ent], ForeignKeyAttr CapabilityGrantForeignKeyAttrI, ForeignKeySec CapabilityGrantForeignKeySecI[ForeignKeyAttr, Ent], Ent any, ] interface { BeginEntity() Ent SetId(id uint64, naturalKey []byte) Ent SetTimestamp(ts time.Time) Ent SetLifecycle(expiresAt time.Time) Ent GetSectionStringArray() StringArraySec GetSectionSymbol() SymbolSec GetSectionU32Range() U32RangeSec GetSectionBool() BoolSec GetSectionForeignKey() ForeignKeySec CommitEntity() (err error) }
CapabilityGrantEntityI is the entity-builder surface CapabilityGrantAddSections drives. It always lists the per-section getters; the entity-frame methods (BeginEntity / plain setters / CommitEntity) are added only for the full codec's BuildEntities. AddSections stacks sections onto a frame the caller already owns, so it needs none of them — which lets a store drive it with a builder whose frame control is unexported (ADR-0100 SD6). Ent is the builder pointer.
type CapabilityGrantForeignKeyAttrI ¶
type CapabilityGrantForeignKeyAttrI interface {
dmlruntime.InAttributeMembershipLowCardRefPI
EndAttributeP()
}
CapabilityGrantForeignKeyAttrI is the InAttr-side view of the foreignKey section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.
type CapabilityGrantForeignKeyAttrsReadI ¶
type CapabilityGrantForeignKeyAttrsReadI interface {
GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) uint64
GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}
CapabilityGrantForeignKeyAttrsReadI is the Attributes-side view of the foreignKey section.
type CapabilityGrantForeignKeyMembsReadI ¶
type CapabilityGrantForeignKeyMembsReadI interface {
GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}
CapabilityGrantForeignKeyMembsReadI is the Memberships-side view of the foreignKey section.
type CapabilityGrantForeignKeySecI ¶
type CapabilityGrantForeignKeySecI[Attr any, Ent any] interface { BeginAttribute(value uint64) Attr EndSection() Ent }
CapabilityGrantForeignKeySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.
type CapabilityGrantStringArrayAttrI ¶
type CapabilityGrantStringArrayAttrI interface {
dmlruntime.InAttributeMembershipLowCardRefPI
EndAttributeP()
}
CapabilityGrantStringArrayAttrI is the InAttr-side view of the stringArray section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.
type CapabilityGrantStringArrayAttrsReadI ¶
type CapabilityGrantStringArrayAttrsReadI interface {
GetAttrValueSingle(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) (string, error)
GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}
CapabilityGrantStringArrayAttrsReadI is the Attributes-side view of the stringArray section.
type CapabilityGrantStringArrayMembsReadI ¶
type CapabilityGrantStringArrayMembsReadI interface {
GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}
CapabilityGrantStringArrayMembsReadI is the Memberships-side view of the stringArray section.
type CapabilityGrantStringArraySecI ¶
type CapabilityGrantStringArraySecI[Attr any, Ent any] interface { BeginAttributeSingle(value string) Attr EndSection() Ent }
CapabilityGrantStringArraySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.
type CapabilityGrantSymbolAttrI ¶
type CapabilityGrantSymbolAttrI interface {
dmlruntime.InAttributeMembershipLowCardRefPI
EndAttributeP()
}
CapabilityGrantSymbolAttrI is the InAttr-side view of the symbol section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.
type CapabilityGrantSymbolAttrsReadI ¶
type CapabilityGrantSymbolAttrsReadI interface {
GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) string
GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}
CapabilityGrantSymbolAttrsReadI is the Attributes-side view of the symbol section.
type CapabilityGrantSymbolMembsReadI ¶
type CapabilityGrantSymbolMembsReadI interface {
GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}
CapabilityGrantSymbolMembsReadI is the Memberships-side view of the symbol section.
type CapabilityGrantSymbolSecI ¶
type CapabilityGrantSymbolSecI[Attr any, Ent any] interface { BeginAttribute(value string) Attr EndSection() Ent }
CapabilityGrantSymbolSecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.
type CapabilityGrantU32RangeAttrI ¶
type CapabilityGrantU32RangeAttrI interface {
dmlruntime.InAttributeMembershipLowCardRefPI
EndAttributeP()
}
CapabilityGrantU32RangeAttrI is the InAttr-side view of the u32Range section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.
type CapabilityGrantU32RangeAttrsReadI ¶
type CapabilityGrantU32RangeAttrsReadI interface {
GetAttrValueBeginIncl(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) uint32
GetAttrValueEndExcl(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) uint32
GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}
CapabilityGrantU32RangeAttrsReadI is the Attributes-side view of the u32Range section.
type CapabilityGrantU32RangeMembsReadI ¶
type CapabilityGrantU32RangeMembsReadI interface {
GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}
CapabilityGrantU32RangeMembsReadI is the Memberships-side view of the u32Range section.
type CapabilityGrantU32RangeSecI ¶
type CapabilityGrantU32RangeSecI[Attr any, Ent any] interface { BeginAttribute(beginIncl uint32, endExcl uint32) Attr EndSection() Ent }
CapabilityGrantU32RangeSecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.