errkind

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: 21 Imported by: 0

Documentation

Overview

Package errkind is the ADR-0042 M5 retrofit of the rowmarshall.Error hand-coded writer (ADR-0041's parallel-array shredded shape). The DTO is pre-shredded — callers flatten the boxer error-tree (Streams[].Facts[]) into the parallel arrays before Append, mirroring the layout the hand-coded writer emits on the wire.

Package name is `errkind` rather than `error` to avoid shadowing the Go builtin error interface in any file that imports it.

Wire shape (per ADR-0041 §Decision):

string : Messages    (errorMsg)  +  Sources       (errorSource)      —  2N entries
symbol : Funcs       (errorFunc) +  StreamNames   (errorStreamName)  —  2N entries
u32    : Lines       (errorLine)                                      —   N entries
u64    : FactIds     (errorFactId) + ParentIds   (errorParentId)     —  2N entries
blob   : Data        (errorData)                                      —   N entries

where N = total facts across all streams. Within each section the `val` array is grouped by kind in writer order; `lr` lists the distinct kinds; `lrcard` is `[N, …]` (one entry per kind). All slices in the DTO have equal length N.

Index

Constants

This section is empty.

Variables

View Source
var ErrorActiveFields = sync.OnceValue(func() []int {
	active := map[string]bool{"blobArray": true, "stringArray": true, "symbolArray": true, "u32Array": true, "u64Array": 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
})

ErrorActiveFields 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 ErrorActiveSections = []int{0, 9, 11, 15, 18}

ErrorActiveSections 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 ErrorAddSections added in v0.0.12

func ErrorAddSections[
	StringArrayAttr ErrorStringArrayAttrI,
	StringArraySec ErrorStringArraySecI[StringArrayAttr, Ent],
	SymbolArrayAttr ErrorSymbolArrayAttrI,
	SymbolArraySec ErrorSymbolArraySecI[SymbolArrayAttr, Ent],
	U32ArrayAttr ErrorU32ArrayAttrI,
	U32ArraySec ErrorU32ArraySecI[U32ArrayAttr, Ent],
	U64ArrayAttr ErrorU64ArrayAttrI,
	U64ArraySec ErrorU64ArraySecI[U64ArrayAttr, Ent],
	BlobArrayAttr ErrorBlobArrayAttrI,
	BlobArraySec ErrorBlobArraySecI[BlobArrayAttr, Ent],
	Ent any,
	DML ErrorEntityI[
		StringArrayAttr, StringArraySec,
		SymbolArrayAttr, SymbolArraySec,
		U32ArrayAttr, U32ArraySec,
		U64ArrayAttr, U64ArraySec,
		BlobArrayAttr, BlobArraySec,
		Ent,
	],
](dml DML, row Error) (err error)

ErrorAddSections 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 ErrorBuildEntities

func ErrorBuildEntities[
	StringArrayAttr ErrorStringArrayAttrI,
	StringArraySec ErrorStringArraySecI[StringArrayAttr, Ent],
	SymbolArrayAttr ErrorSymbolArrayAttrI,
	SymbolArraySec ErrorSymbolArraySecI[SymbolArrayAttr, Ent],
	U32ArrayAttr ErrorU32ArrayAttrI,
	U32ArraySec ErrorU32ArraySecI[U32ArrayAttr, Ent],
	U64ArrayAttr ErrorU64ArrayAttrI,
	U64ArraySec ErrorU64ArraySecI[U64ArrayAttr, Ent],
	BlobArrayAttr ErrorBlobArrayAttrI,
	BlobArraySec ErrorBlobArraySecI[BlobArrayAttr, Ent],
	Ent any,
	DML ErrorEntityI[
		StringArrayAttr, StringArraySec,
		SymbolArrayAttr, SymbolArraySec,
		U32ArrayAttr, U32ArraySec,
		U64ArrayAttr, U64ArraySec,
		BlobArrayAttr, BlobArraySec,
		Ent,
	],
](dml DML, c *ErrorColumns) (err error)

ErrorBuildEntities 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 ErrorEmitSectionBlobArray added in v0.0.20

func ErrorEmitSectionBlobArray[
	BlobArrayAttr ErrorBlobArrayAttrI,
	BlobArraySec ErrorBlobArraySecI[BlobArrayAttr, Ent],
	Ent any,
](blobArraySec BlobArraySec, row Error) (err error)

ErrorEmitSectionBlobArray writes this kind's blobArray 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 ErrorEmitSectionStringArray added in v0.0.20

func ErrorEmitSectionStringArray[
	StringArrayAttr ErrorStringArrayAttrI,
	StringArraySec ErrorStringArraySecI[StringArrayAttr, Ent],
	Ent any,
](stringArraySec StringArraySec, row Error) (err error)

ErrorEmitSectionStringArray 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 ErrorEmitSectionSymbolArray added in v0.0.20

func ErrorEmitSectionSymbolArray[
	SymbolArrayAttr ErrorSymbolArrayAttrI,
	SymbolArraySec ErrorSymbolArraySecI[SymbolArrayAttr, Ent],
	Ent any,
](symbolArraySec SymbolArraySec, row Error) (err error)

ErrorEmitSectionSymbolArray writes this kind's symbolArray 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 ErrorEmitSectionU32Array added in v0.0.20

func ErrorEmitSectionU32Array[
	U32ArrayAttr ErrorU32ArrayAttrI,
	U32ArraySec ErrorU32ArraySecI[U32ArrayAttr, Ent],
	Ent any,
](u32ArraySec U32ArraySec, row Error) (err error)

ErrorEmitSectionU32Array writes this kind's u32Array 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 ErrorEmitSectionU64Array added in v0.0.20

func ErrorEmitSectionU64Array[
	U64ArrayAttr ErrorU64ArrayAttrI,
	U64ArraySec ErrorU64ArraySecI[U64ArrayAttr, Ent],
	Ent any,
](u64ArraySec U64ArraySec, row Error) (err error)

ErrorEmitSectionU64Array writes this kind's u64Array 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 ErrorFillFromArrow

func ErrorFillFromArrow[
	StringArrayAttrs ErrorStringArrayAttrsReadI,
	StringArrayMembs ErrorStringArrayMembsReadI,
	SymbolArrayAttrs ErrorSymbolArrayAttrsReadI,
	SymbolArrayMembs ErrorSymbolArrayMembsReadI,
	U32ArrayAttrs ErrorU32ArrayAttrsReadI,
	U32ArrayMembs ErrorU32ArrayMembsReadI,
	U64ArrayAttrs ErrorU64ArrayAttrsReadI,
	U64ArrayMembs ErrorU64ArrayMembsReadI,
	BlobArrayAttrs ErrorBlobArrayAttrsReadI,
	BlobArrayMembs ErrorBlobArrayMembsReadI,
](
	c *ErrorColumns,
	n int,
	idCol *array.Uint64,
	nkCol *array.Binary,
	tsCol *array.Timestamp,
	stringArrayAttrs StringArrayAttrs,
	stringArrayMembs StringArrayMembs,
	symbolArrayAttrs SymbolArrayAttrs,
	symbolArrayMembs SymbolArrayMembs,
	u32ArrayAttrs U32ArrayAttrs,
	u32ArrayMembs U32ArrayMembs,
	u64ArrayAttrs U64ArrayAttrs,
	u64ArrayMembs U64ArrayMembs,
	blobArrayAttrs BlobArrayAttrs,
	blobArrayMembs BlobArrayMembs,
) (err error)

ErrorFillFromArrow 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 Error

type Error struct {

	// Id is a caller-supplied correlation id for the error row.
	Id uint64 `lw:",id"`

	// NaturalKey is an optional opaque join key (may be nil).
	NaturalKey []byte `lw:",naturalKey"`

	// CapturedTs is the wall-clock capture time (truncated to seconds on
	// the wire as DateTime UInt32). time.Time matches the facts entity
	// builder's SetTimestamp signature verbatim (strict 1:1).
	CapturedTs time.Time `lw:",ts"`

	// Per-fact parallel arrays — all same length N. See package doc
	// for the section / membership routing.
	Messages    []string `lw:"errorMsg,stringArray"`
	Sources     []string `lw:"errorSource,stringArray"`
	Funcs       []string `lw:"errorFunc,symbolArray"`
	StreamNames []string `lw:"errorStreamName,symbolArray"`
	Lines       []uint32 `lw:"errorLine,u32Array"`
	FactIds     []uint64 `lw:"errorFactId,u64Array"`
	ParentIds   []uint64 `lw:"errorParentId,u64Array"`
	Data        [][]byte `lw:"errorData,blobArray"`
	// contains filtered or unexported fields
}

Error is one captured error-tree row, pre-shredded into parallel arrays. Callers compute total fact count N (across all streams), then populate each slice with N entries — StreamNames repeats the stream name once per fact in that stream.

func ErrorReadRow added in v0.0.12

func ErrorReadRow[
	StringArrayAttrs ErrorStringArrayAttrsReadI,
	StringArrayMembs ErrorStringArrayMembsReadI,
	SymbolArrayAttrs ErrorSymbolArrayAttrsReadI,
	SymbolArrayMembs ErrorSymbolArrayMembsReadI,
	U32ArrayAttrs ErrorU32ArrayAttrsReadI,
	U32ArrayMembs ErrorU32ArrayMembsReadI,
	U64ArrayAttrs ErrorU64ArrayAttrsReadI,
	U64ArrayMembs ErrorU64ArrayMembsReadI,
	BlobArrayAttrs ErrorBlobArrayAttrsReadI,
	BlobArrayMembs ErrorBlobArrayMembsReadI,
](
	i int,
	stringArrayAttrs StringArrayAttrs,
	stringArrayMembs StringArrayMembs,
	symbolArrayAttrs SymbolArrayAttrs,
	symbolArrayMembs SymbolArrayMembs,
	u32ArrayAttrs U32ArrayAttrs,
	u32ArrayMembs U32ArrayMembs,
	u64ArrayAttrs U64ArrayAttrs,
	u64ArrayMembs U64ArrayMembs,
	blobArrayAttrs BlobArrayAttrs,
	blobArrayMembs BlobArrayMembs,
) (row Error, present bool, err error)

ErrorReadRow reads row i as one optional Error 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.

func FromBoxerError

func FromBoxerError(id uint64, naturalKey []byte, capturedTs time.Time, err error) (out Error)

FromBoxerError walks a boxer error chain (via eh.WalkStreams) and flattens the PC-prefix-deduplicated stream tree into the parallel- array Error shape. Drop-in replacement for the legacy rowmarshall.FromBoxerError, except the output is value-typed (not pointer) and pre-shredded.

id and naturalKey are caller-supplied: typical sources are a request id, a trace id, or a monotonic counter. capturedTs is the capture time (typically time.Now(); callers control it so tests can pin a deterministic value).

Returns zero-value Error if err is nil.

type ErrorBlobArrayAttrI

type ErrorBlobArrayAttrI interface {
	dmlruntime.InAttributeMembershipLowCardRefPI
	AddToContainerP(value []byte)
	EndAttributeP()
}

ErrorBlobArrayAttrI is the InAttr-side view of the blobArray section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.

type ErrorBlobArrayAttrsReadI

type ErrorBlobArrayAttrsReadI interface {
	GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[[]byte]
	GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}

ErrorBlobArrayAttrsReadI is the Attributes-side view of the blobArray section.

type ErrorBlobArrayMembsReadI

type ErrorBlobArrayMembsReadI interface {
	GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}

ErrorBlobArrayMembsReadI is the Memberships-side view of the blobArray section.

type ErrorBlobArraySecI

type ErrorBlobArraySecI[Attr any, Ent any] interface {
	BeginAttribute() Attr
	EndSection() Ent
}

ErrorBlobArraySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.

type ErrorCodec

type ErrorCodec struct{}

ErrorCodec is the buscodec.CodecI bridge for Error. 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 (*ErrorCodec) ContentType

func (inst *ErrorCodec) ContentType() (ct string)

func (*ErrorCodec) Decode

func (inst *ErrorCodec) Decode(b []byte, v any) (err error)

func (*ErrorCodec) Encode

func (inst *ErrorCodec) Encode(v any) (b []byte, err error)

func (*ErrorCodec) Name

func (inst *ErrorCodec) Name() (n string)

type ErrorColumns

type ErrorColumns struct {
	Id         []uint64
	NaturalKey [][]byte
	CapturedTs []time.Time

	Messages    [][]string
	Sources     [][]string
	Funcs       [][]string
	StreamNames [][]string
	Lines       [][]uint32
	FactIds     [][]uint64
	ParentIds   [][]uint64
	Data        [][][]byte
}

ErrorColumns is the SoA storage for batches of Error rows. All slices grow in lockstep — Len returns the row count.

func (*ErrorColumns) Append

func (c *ErrorColumns) Append(row Error)

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 (*ErrorColumns) Len

func (c *ErrorColumns) Len() int

Len returns the number of rows currently in the batch.

func (*ErrorColumns) Marshal

func (c *ErrorColumns) 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 ErrorBuildEntities — the per-row chain lives there and works against any leeway-DML class that structurally satisfies ErrorEntityI.

func (*ErrorColumns) Row

func (c *ErrorColumns) Row(i int) (row Error)

Row reconstructs entity i as an AoS Error record. Inverse of Append: slice / pointer fields are shared by reference (no defensive copy); scalar fields and Option[T] are copied.

func (*ErrorColumns) Unmarshal

func (c *ErrorColumns) 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 ErrorFillFromArrow — the per-row decode lives there.

type ErrorEntityI

type ErrorEntityI[
	StringArrayAttr ErrorStringArrayAttrI,
	StringArraySec ErrorStringArraySecI[StringArrayAttr, Ent],
	SymbolArrayAttr ErrorSymbolArrayAttrI,
	SymbolArraySec ErrorSymbolArraySecI[SymbolArrayAttr, Ent],
	U32ArrayAttr ErrorU32ArrayAttrI,
	U32ArraySec ErrorU32ArraySecI[U32ArrayAttr, Ent],
	U64ArrayAttr ErrorU64ArrayAttrI,
	U64ArraySec ErrorU64ArraySecI[U64ArrayAttr, Ent],
	BlobArrayAttr ErrorBlobArrayAttrI,
	BlobArraySec ErrorBlobArraySecI[BlobArrayAttr, Ent],
	Ent any,
] interface {
	BeginEntity() Ent
	SetId(id uint64, naturalKey []byte) Ent
	SetTimestamp(ts time.Time) Ent
	GetSectionStringArray() StringArraySec
	GetSectionSymbolArray() SymbolArraySec
	GetSectionU32Array() U32ArraySec
	GetSectionU64Array() U64ArraySec
	GetSectionBlobArray() BlobArraySec
	CommitEntity() (err error)
}

ErrorEntityI is the entity-builder surface ErrorAddSections 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 ErrorStringArrayAttrI

type ErrorStringArrayAttrI interface {
	dmlruntime.InAttributeMembershipLowCardRefPI
	AddToContainerP(value string)
	EndAttributeP()
}

ErrorStringArrayAttrI 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 ErrorStringArrayAttrsReadI

type ErrorStringArrayAttrsReadI interface {
	GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[string]
	GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}

ErrorStringArrayAttrsReadI is the Attributes-side view of the stringArray section.

type ErrorStringArrayMembsReadI

type ErrorStringArrayMembsReadI interface {
	GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}

ErrorStringArrayMembsReadI is the Memberships-side view of the stringArray section.

type ErrorStringArraySecI

type ErrorStringArraySecI[Attr any, Ent any] interface {
	BeginAttribute() Attr
	EndSection() Ent
}

ErrorStringArraySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.

type ErrorSymbolArrayAttrI

type ErrorSymbolArrayAttrI interface {
	dmlruntime.InAttributeMembershipLowCardRefPI
	AddToContainerP(value string)
	EndAttributeP()
}

ErrorSymbolArrayAttrI is the InAttr-side view of the symbolArray section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.

type ErrorSymbolArrayAttrsReadI

type ErrorSymbolArrayAttrsReadI interface {
	GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[string]
	GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}

ErrorSymbolArrayAttrsReadI is the Attributes-side view of the symbolArray section.

type ErrorSymbolArrayMembsReadI

type ErrorSymbolArrayMembsReadI interface {
	GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}

ErrorSymbolArrayMembsReadI is the Memberships-side view of the symbolArray section.

type ErrorSymbolArraySecI

type ErrorSymbolArraySecI[Attr any, Ent any] interface {
	BeginAttribute() Attr
	EndSection() Ent
}

ErrorSymbolArraySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.

type ErrorU32ArrayAttrI

type ErrorU32ArrayAttrI interface {
	dmlruntime.InAttributeMembershipLowCardRefPI
	AddToContainerP(value uint32)
	EndAttributeP()
}

ErrorU32ArrayAttrI is the InAttr-side view of the u32Array section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.

type ErrorU32ArrayAttrsReadI

type ErrorU32ArrayAttrsReadI interface {
	GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint32]
	GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}

ErrorU32ArrayAttrsReadI is the Attributes-side view of the u32Array section.

type ErrorU32ArrayMembsReadI

type ErrorU32ArrayMembsReadI interface {
	GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}

ErrorU32ArrayMembsReadI is the Memberships-side view of the u32Array section.

type ErrorU32ArraySecI

type ErrorU32ArraySecI[Attr any, Ent any] interface {
	BeginAttribute() Attr
	EndSection() Ent
}

ErrorU32ArraySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.

type ErrorU64ArrayAttrI

type ErrorU64ArrayAttrI interface {
	dmlruntime.InAttributeMembershipLowCardRefPI
	AddToContainerP(value uint64)
	EndAttributeP()
}

ErrorU64ArrayAttrI is the InAttr-side view of the u64Array section. P-variants only — every method returns void so no F-bounded `[Self]` parameter is needed.

type ErrorU64ArrayAttrsReadI

type ErrorU64ArrayAttrsReadI interface {
	GetAttrValueValue(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
	GetNumberOfAttributes(entityIdx raruntime.EntityIdx) int64
}

ErrorU64ArrayAttrsReadI is the Attributes-side view of the u64Array section.

type ErrorU64ArrayMembsReadI

type ErrorU64ArrayMembsReadI interface {
	GetMembValueLowCardRef(entityIdx raruntime.EntityIdx, attrIdx raruntime.AttributeIdx) iter.Seq[uint64]
}

ErrorU64ArrayMembsReadI is the Memberships-side view of the u64Array section.

type ErrorU64ArraySecI

type ErrorU64ArraySecI[Attr any, Ent any] interface {
	BeginAttribute() Attr
	EndSection() Ent
}

ErrorU64ArraySecI is the Section-side view: opens an attribute and closes the section. Attr and Ent are bound at the call site by inference.

Directories

Path Synopsis
Package leewayrender bridges a captured errkind.Error into the leeway widget pipeline (Table2CardEmitter and any other streamreadaccess.SinkI).
Package leewayrender bridges a captured errkind.Error into the leeway widget pipeline (Table2CardEmitter and any other streamreadaccess.SinkI).

Jump to

Keyboard shortcuts

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