capabilitygrant

package
v0.0.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2026 License: MIT Imports: 22 Imported by: 0

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

Constants

This section is empty.

Variables

View Source
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.

View Source
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.

View Source
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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL