matter

package
v1.5.49 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2025 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	QualityNone              Quality = 0
	QualityNullable                  = 1 << (iota - 1)
	QualityNonVolatile               = 1 << (iota - 1)
	QualityFixed                     = 1 << (iota - 1)
	QualityScene                     = 1 << (iota - 1)
	QualityReportable                = 1 << (iota - 1)
	QualityChangedOmitted            = 1 << (iota - 1)
	QualityDiagnostics               = 1 << (iota - 1)
	QualitySingleton                 = 1 << (iota - 1)
	QualityLargeMessage              = 1 << (iota - 1)
	QualitySourceAttribution         = 1 << (iota - 1)
	QualityAtomicWrite               = 1 << (iota - 1)
	QualityQuieterReporting          = 1 << (iota - 1)

	QualityAll = QualityNullable | QualityNonVolatile | QualityFixed | QualityScene | QualityReportable | QualityChangedOmitted | QualityDiagnostics | QualitySingleton | QualityLargeMessage | QualitySourceAttribution | QualityAtomicWrite | QualityQuieterReporting
)

Variables

View Source
var AllowedTableAttributes = map[asciidoc.AttributeName]asciidoc.Elements{
	"id":      nil,
	"title":   nil,
	"valign":  {asciidoc.NewString("middle")},
	"options": {asciidoc.NewString("header")},
}
View Source
var AtomicRequestCommandID = NewNumber(0xFE)
View Source
var AtomicResponseCommandID = NewNumber(0xFD)
View Source
var BannedTableAttributes = [...]string{"cols", "frame", "width"}
View Source
var ClusterIDSectionName = "Cluster ID"
View Source
var ClusterIDsSectionName = "Cluster IDs"
View Source
var CommandsSectionName = "Commands"
View Source
var DataTypeSuffixes = map[DataTypeCategory]string{
	DataTypeCategoryBitmap: "Bitmap",
	DataTypeCategoryEnum:   "Enum",
	DataTypeCategoryStruct: "Struct",
}
View Source
var DisallowedReferenceSuffixes = []string{"Command", "Feature", "Attribute", "Field", "Event"}
View Source
var DocTypeNames = map[DocType]string{
	DocTypeUnknown:                 "Unknown",
	DocTypeAppClusterIndex:         "AppClusterIndex",
	DocTypeAppClusters:             "AppClusters",
	DocTypeDeviceType:              "DeviceType",
	DocTypeDeviceTypes:             "DeviceTypes",
	DocTypeDeviceTypeIndex:         "DeviceTypeIndex",
	DocTypeCluster:                 "Cluster",
	DocTypeCommonProtocol:          "CommonProtocol",
	DocTypeDataModel:               "DataModel",
	DocTypeDeviceAttestation:       "DeviceAttestation",
	DocTypeMultiAdmin:              "MultiAdmin",
	DocTypeNamespace:               "Namespace",
	DocTypeNamespaces:              "Namespaces",
	DocTypeQRCode:                  "QRCode",
	DocTypeRendezvous:              "Rendezvous",
	DocTypeSecureChannel:           "SecureChannel",
	DocTypeServiceDeviceManagement: "ServiceDeviceManagement",
	DocTypeSoftAP:                  "SoftAP",
	DocTypeBaseDeviceType:          "BaseDeviceType",
}
View Source
var DomainNames = map[Domain]string{
	DomainUnknown:               "Unknown",
	DomainGeneral:               "General",
	DomainCHIP:                  "CHIP",
	DomainMedia:                 "Media",
	DomainLighting:              "Lighting",
	DomainAppliances:            "Appliances",
	DomainClosures:              "Closures",
	DomainHVAC:                  "HVAC",
	DomainMeasurementAndSensing: "Measurement & Sensing",
	DomainRobots:                "Robots",
	DomainHomeAutomation:        "Home Automation",
	DomainEnergyManagement:      "Energy Management",
	DomainNetworkInfrastructure: "Network Infrastructure",
	DomainCameras:               "Cameras",
}
View Source
var InvalidID = &Number{value: -1}
View Source
var PrivilegeNames = map[Privilege]string{
	PrivilegeUnknown:    "Unknown",
	PrivilegeView:       "View",
	PrivilegeOperate:    "Operate",
	PrivilegeManage:     "Manage",
	PrivilegeAdminister: "Administer",
}
View Source
var PrivilegeNamesShort = map[Privilege]string{
	PrivilegeUnknown:    "Unknown",
	PrivilegeView:       "View",
	PrivilegeOperate:    "Operate",
	PrivilegeManage:     "Manage",
	PrivilegeAdminister: "Admin",
}
View Source
var TableColumnNames = map[TableColumn]string{
	TableColumnUnknown:      "Unknown",
	TableColumnID:           "ID",
	TableColumnName:         "Name",
	TableColumnType:         "Type",
	TableColumnConstraint:   "Constraint",
	TableColumnQuality:      "Quality",
	TableColumnFallback:     "Fallback",
	TableColumnAccess:       "Access",
	TableColumnConformance:  "Conformance",
	TableColumnPriority:     "Priority",
	TableColumnHierarchy:    "Hierarchy",
	TableColumnRole:         "Role",
	TableColumnContext:      "Context",
	TableColumnScope:        "Scope",
	TableColumnPICS:         "PICS",
	TableColumnPICSCode:     "PICS Code",
	TableColumnValue:        "Value",
	TableColumnBit:          "Bit",
	TableColumnCode:         "Code",
	TableColumnStatusCode:   "Status Code",
	TableColumnFeature:      "Feature",
	TableColumnClusterID:    "Cluster ID",
	TableColumnEventID:      "Event ID",
	TableColumnCommandID:    "Command ID",
	TableColumnDevice:       "Device",
	TableColumnDeviceID:     "Device Type ID",
	TableColumnDeviceName:   "Device Type Name",
	TableColumnSupersetOf:   "Superset Of",
	TableColumnClass:        "Class",
	TableColumnDirection:    "Direction",
	TableColumnDescription:  "Description",
	TableColumnRevision:     "Revision",
	TableColumnResponse:     "Response",
	TableColumnSummary:      "Summary",
	TableColumnCluster:      "Cluster",
	TableColumnClusterName:  "Cluster Name",
	TableColumnElement:      "Element",
	TableColumnClientServer: "Client/Server",
	TableColumnCondition:    "Condition",
	TableColumnConditionID:  "Condition ID",
	TableColumnModeTagValue: "Mode Tag Value",
	TableColumnNamespace:    "Namespace",
	TableColumnNamespaceID:  "Namespace ID",
	TableColumnTag:          "Tag",
	TableColumnTagID:        "Tag ID",
	TableColumnLocation:     "Location",
	TableColumnField:        "Field",
	TableColumnFieldID:      "Field ID",
}
View Source
var Tables = map[TableType]Table{
	TableTypeAttributes: {
		ColumnOrder: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnType,
			TableColumnConstraint,
			TableColumnQuality,
			TableColumnFallback,
			TableColumnAccess,
			TableColumnConformance,
		},
	},
	TableTypeAppClusterClassification: {
		ColumnOrder: []TableColumn{
			TableColumnHierarchy,
			TableColumnRole,
			TableColumnScope,
			TableColumnContext,
			TableColumnPICS,
		},
	},
	TableTypeDeviceTypeClassification: {
		ColumnOrder: []TableColumn{
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnSupersetOf,
			TableColumnClass,
			TableColumnScope,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID: TableColumnDeviceID,
		},
	},
	TableTypeClassification: {
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnContext: TableColumnScope,
			TableColumnPICS:    TableColumnPICSCode,
		},
	},
	TableTypeClusterID: {
		ColumnOrder: []TableColumn{
			TableColumnClusterID,
			TableColumnClusterName,
			TableColumnConformance,
		},
		RequiredColumns: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID:   TableColumnClusterID,
			TableColumnName: TableColumnClusterName,
		},
	},
	TableTypeCommands: {
		ColumnOrder: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnDirection,
			TableColumnResponse,
			TableColumnAccess,
			TableColumnQuality,
			TableColumnConformance,
		},
	},
	TableTypeCommandFields: {
		ColumnOrder: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnDirection,
			TableColumnResponse,
			TableColumnAccess,
			TableColumnQuality,
			TableColumnConformance,
		},
	},
	TableTypeStruct: {
		ColumnOrder: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnType,
			TableColumnConstraint,
			TableColumnQuality,
			TableColumnFallback,
			TableColumnAccess,
			TableColumnConformance,
		},
	},
	TableTypeEnum: {
		ColumnOrder: []TableColumn{
			TableColumnValue,
			TableColumnName,
			TableColumnSummary,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnDescription: TableColumnSummary,
			TableColumnStatusCode:  TableColumnValue,
			TableColumnID:          TableColumnValue,
		},
	},
	TableTypeBitmap: {
		ColumnOrder: []TableColumn{
			TableColumnBit,
			TableColumnName,
			TableColumnSummary,
			TableColumnConformance,
		},
	},
	TableTypeEvents: {
		ColumnOrder: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnPriority,
			TableColumnQuality,
			TableColumnAccess,
			TableColumnConformance,
		},
	},
	TableTypeEventFields: {
		ColumnOrder: []TableColumn{
			TableColumnID,
			TableColumnName,
			TableColumnType,
			TableColumnConstraint,
			TableColumnQuality,
			TableColumnFallback,
			TableColumnConformance,
		},
	},
	TableTypeFeatures: {
		ColumnOrder: []TableColumn{
			TableColumnBit,
			TableColumnCode,
			TableColumnFeature,
			TableColumnConformance,
			TableColumnSummary,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID: TableColumnBit,
		},
	},
	TableTypeDeviceTypeRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnConstraint,
			TableColumnConformance,
			TableColumnLocation,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID:   TableColumnDeviceID,
			TableColumnName: TableColumnDeviceName,
		},
	},
	TableTypeDeviceID: {
		ColumnOrder: []TableColumn{
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnSupersetOf,
			TableColumnClass,
			TableColumnScope,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID:   TableColumnDeviceID,
			TableColumnName: TableColumnDeviceName,
		},
	},
	TableTypeClusterRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnClusterID,
			TableColumnClusterName,
			TableColumnClientServer,
			TableColumnQuality,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID:      TableColumnClusterID,
			TableColumnName:    TableColumnCluster,
			TableColumnCluster: TableColumnClusterName,
		},
	},
	TableTypeElementRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnClusterID,
			TableColumnClusterName,
			TableColumnElement,
			TableColumnName,
			TableColumnClientServer,
			TableColumnConformance,
			TableColumnField,
			TableColumnQuality,
			TableColumnConstraint,
			TableColumnAccess,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnID:      TableColumnClusterID,
			TableColumnCluster: TableColumnClusterName,
		},
	},
	TableTypeComposedDeviceTypeClusterRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnDevice,
			TableColumnClusterID,
			TableColumnClusterName,
			TableColumnCluster,
			TableColumnClientServer,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnCluster: TableColumnClusterName,
			TableColumnDevice:  TableColumnDeviceName,
		},
	},
	TableTypeComposedDeviceTypeElementRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnClusterID,
			TableColumnClusterName,
			TableColumnElement,
			TableColumnName,
			TableColumnClientServer,
			TableColumnConformance,
			TableColumnField,
			TableColumnQuality,
			TableColumnConstraint,
			TableColumnAccess,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnCluster: TableColumnClusterName,
			TableColumnDevice:  TableColumnDeviceName,
		},
	},
	TableTypeConditionRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnLocation,
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnCondition,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnDevice: TableColumnDeviceName,
		},
	},
	TableTypeTagRequirements: {
		ColumnOrder: []TableColumn{
			TableColumnDeviceID,
			TableColumnDeviceName,
			TableColumnNamespaceID,
			TableColumnNamespace,
			TableColumnTagID,
			TableColumnTag,
			TableColumnConstraint,
			TableColumnConformance,
		},
		ColumnRenames: map[TableColumn]TableColumn{
			TableColumnDevice: TableColumnDeviceName,
		},
	},
}

Functions

func AddCaseAcronym

func AddCaseAcronym(s string)

func CamelCase

func CamelCase(s string) string

func CanonicalSectionTypeName added in v1.5.48

func CanonicalSectionTypeName(st Section) string

func Case

func Case(s string) string

Case turns a string with spaces into a valid Matter identifier in Pascal Case It is Unicode-aware, and preserves acronyms e.g. "Level control" becomes "LevelControl", "TV set" becomes "TVSet"

func CaseWithSeparator

func CaseWithSeparator(s string, separator rune) string

Case turns a string with spaces into a valid Matter identifier, with a custom separator rune e.g. "Level control" becomes "Level-Control", "TV set" becomes "TV-Set"

func ContainsNumber

func ContainsNumber(s []*Number, n *Number) bool

func EntityConformance

func EntityConformance(entity types.Entity) conformance.Set

func EntityConstraint

func EntityConstraint(entity types.Entity) constraint.Constraint

func EntityFallback

func EntityFallback(entity types.Entity) constraint.Limit

func EntityName

func EntityName(e types.Entity) string

func GetColumnName

func GetColumnName(column TableColumn, overrides map[TableColumn]TableColumn) (name string, ok bool)

func IsFabricScopingAllowed

func IsFabricScopingAllowed(e types.Entity) bool

func IsFabricSensitivityAllowed

func IsFabricSensitivityAllowed(e types.Entity) bool

func LogEntity

func LogEntity(key string, en types.Entity) slog.Attr

func NonGlobalIDInvalidForEntity

func NonGlobalIDInvalidForEntity(n *Number, entityType types.EntityType) bool

func ParseFormattedIDRange

func ParseFormattedIDRange(s string) (from *Number, fromFormat types.NumberFormat, to *Number, toFormat types.NumberFormat)

func ParseIDRange

func ParseIDRange(s string) (from *Number, to *Number)

func SortNumbers

func SortNumbers(s []*Number)

func StripDataTypeSuffixes

func StripDataTypeSuffixes(dataType string) string

func StripReferenceSuffixes

func StripReferenceSuffixes(newID string) string

func StripTypeSuffixes

func StripTypeSuffixes(dataType string) string

func Uncase

func Uncase(s string) string

Types

type Access

type Access struct {
	Read   Privilege `json:"read,omitempty" yaml:"read,omitempty"`
	Write  Privilege `json:"write,omitempty"  yaml:"write,omitempty"`
	Invoke Privilege `json:"invoke,omitempty"  yaml:"invoke,omitempty"`

	OptionalWrite     bool              `json:"optionalWrite,omitempty"  yaml:"optionalWrite,omitempty"`
	FabricScoping     FabricScoping     `json:"fabricScoped,omitempty"  yaml:"fabricScoping,omitempty"`
	FabricSensitivity FabricSensitivity `json:"fabricSensitive,omitempty"  yaml:"fabricSensitivity,omitempty"`

	Timing Timing `json:"timed,omitempty"`
}

func DefaultAccess

func DefaultAccess(entityType types.EntityType) Access

func (Access) Equal

func (a Access) Equal(oa Access) bool

func (*Access) Inherit

func (a *Access) Inherit(parent Access)

func (Access) IsEmpty

func (a Access) IsEmpty() bool

func (Access) IsFabricScoped

func (a Access) IsFabricScoped() bool

func (Access) IsFabricSensitive

func (a Access) IsFabricSensitive() bool

func (Access) IsTimed

func (a Access) IsTimed() bool

func (Access) String

func (a Access) String() string

type AnonymousBitmap

type AnonymousBitmap struct {
	Type *types.DataType `json:"type,omitempty"`
	Bits BitSet          `json:"bits,omitempty"`
	// contains filtered or unexported fields
}

func NewAnonymousBitmap

func NewAnonymousBitmap(source asciidoc.Element, parent types.Entity) *AnonymousBitmap

func (AnonymousBitmap) Cluster

func (e AnonymousBitmap) Cluster() *Cluster

func (AnonymousBitmap) EntityType

func (AnonymousBitmap) EntityType() types.EntityType

func (AnonymousBitmap) Origin

func (e AnonymousBitmap) Origin() (path string, line int)

func (AnonymousBitmap) Parent

func (e AnonymousBitmap) Parent() types.Entity

func (*AnonymousBitmap) Size

func (bm *AnonymousBitmap) Size() int

func (AnonymousBitmap) Source

func (e AnonymousBitmap) Source() asciidoc.Element

type AnonymousEnum

type AnonymousEnum struct {
	Type   *types.DataType `json:"type,omitempty"`
	Values EnumValueSet    `json:"values,omitempty"`
	// contains filtered or unexported fields
}

func NewAnonymousEnum

func NewAnonymousEnum(source asciidoc.Element, parent types.Entity) *AnonymousEnum

func (AnonymousEnum) Cluster

func (e AnonymousEnum) Cluster() *Cluster

func (AnonymousEnum) EntityType

func (AnonymousEnum) EntityType() types.EntityType

func (AnonymousEnum) Origin

func (e AnonymousEnum) Origin() (path string, line int)

func (AnonymousEnum) Parent

func (e AnonymousEnum) Parent() types.Entity

func (AnonymousEnum) Source

func (e AnonymousEnum) Source() asciidoc.Element

type AssociatedDataTypes

type AssociatedDataTypes struct {
	Bitmaps   BitmapSet   `json:"bitmaps,omitempty"`
	Enums     EnumSet     `json:"enums,omitempty"`
	Structs   StructSet   `json:"structs,omitempty"`
	TypeDefs  TypeDefSet  `json:"typedefs,omitempty"`
	Constants ConstantSet `json:"constants,omitempty"`
	// contains filtered or unexported fields
}

func (*AssociatedDataTypes) AddBitmaps

func (adt *AssociatedDataTypes) AddBitmaps(bitmaps ...*Bitmap)

func (*AssociatedDataTypes) AddConstants

func (adt *AssociatedDataTypes) AddConstants(constants ...*Constant)

func (*AssociatedDataTypes) AddDataTypes

func (adt *AssociatedDataTypes) AddDataTypes(entities ...types.Entity)

func (*AssociatedDataTypes) AddEnums

func (adt *AssociatedDataTypes) AddEnums(enums ...*Enum)

func (*AssociatedDataTypes) AddStructs

func (adt *AssociatedDataTypes) AddStructs(structs ...*Struct)

func (*AssociatedDataTypes) AddTypeDefs

func (adt *AssociatedDataTypes) AddTypeDefs(typeDefs ...*TypeDef)

func (*AssociatedDataTypes) MoveStruct

func (adt *AssociatedDataTypes) MoveStruct(s *Struct)

This really exists to allow patching ZAP

type Bit

type Bit interface {
	types.Entity
	log.Source

	Bit() string
	Name() string
	Summary() string
	Conformance() conformance.Set

	Inherit(parent Bit) error
	Clone() Bit
	CloneTo(parent types.Entity) Bit
	Equals(e types.Entity) bool

	Bits() (from uint64, to uint64, err error)
	Mask() (uint64, error)
}

type BitSet

type BitSet []Bit

func (BitSet) Identifier

func (bs BitSet) Identifier(name string) (types.Entity, bool)

type Bitmap

type Bitmap struct {
	Name        string          `json:"name,omitempty"`
	Description string          `json:"description,omitempty"`
	Type        *types.DataType `json:"type,omitempty"`
	Bits        BitSet          `json:"bits,omitempty"`
	// contains filtered or unexported fields
}

func NewBitmap

func NewBitmap(source asciidoc.Element, parent types.Entity, bits ...*BitmapBit) *Bitmap

func (*Bitmap) AddBit

func (bm *Bitmap) AddBit(b *BitmapBit)

func (*Bitmap) BaseDataType

func (bm *Bitmap) BaseDataType() types.BaseDataType

func (*Bitmap) Clone

func (bm *Bitmap) Clone() *Bitmap

func (*Bitmap) CloneTo

func (bm *Bitmap) CloneTo(parent types.Entity) *Bitmap

func (Bitmap) Cluster

func (e Bitmap) Cluster() *Cluster

func (*Bitmap) EntityType

func (bm *Bitmap) EntityType() types.EntityType

func (*Bitmap) Equals

func (bm *Bitmap) Equals(e types.Entity) bool

func (*Bitmap) Identifier

func (bm *Bitmap) Identifier(id string) (types.Entity, bool)

func (*Bitmap) Inherit

func (bm *Bitmap) Inherit(parent *Bitmap) error

func (*Bitmap) NullValue

func (bm *Bitmap) NullValue() uint64

func (Bitmap) Origin

func (e Bitmap) Origin() (path string, line int)

func (Bitmap) Parent

func (e Bitmap) Parent() types.Entity

func (*Bitmap) Size

func (bm *Bitmap) Size() int

func (Bitmap) Source

func (e Bitmap) Source() asciidoc.Element

type BitmapBit

type BitmapBit struct {
	// contains filtered or unexported fields
}

func NewBitmapBit

func NewBitmapBit(source asciidoc.Element, bit string, name string, summary string, conformance conformance.Set) *BitmapBit

func (*BitmapBit) Bit

func (bmb *BitmapBit) Bit() string

func (*BitmapBit) Bits

func (bmb *BitmapBit) Bits() (from uint64, to uint64, err error)

func (*BitmapBit) Clone

func (bmb *BitmapBit) Clone() Bit

func (*BitmapBit) CloneTo

func (bmb *BitmapBit) CloneTo(parent types.Entity) Bit

func (BitmapBit) Cluster

func (e BitmapBit) Cluster() *Cluster

func (*BitmapBit) Conformance

func (bmb *BitmapBit) Conformance() conformance.Set

func (*BitmapBit) EntityType

func (bmb *BitmapBit) EntityType() types.EntityType

func (*BitmapBit) Equals

func (bmb *BitmapBit) Equals(e types.Entity) bool

func (*BitmapBit) GetConformance

func (bmb *BitmapBit) GetConformance() conformance.Set

func (*BitmapBit) Inherit

func (bmb *BitmapBit) Inherit(parent Bit) error

func (*BitmapBit) MarshalJSON

func (bmb *BitmapBit) MarshalJSON() ([]byte, error)

func (*BitmapBit) Mask

func (bmb *BitmapBit) Mask() (uint64, error)

func (*BitmapBit) Name

func (bmb *BitmapBit) Name() string

func (BitmapBit) Origin

func (e BitmapBit) Origin() (path string, line int)

func (BitmapBit) Parent

func (e BitmapBit) Parent() types.Entity

func (BitmapBit) Source

func (e BitmapBit) Source() asciidoc.Element

func (*BitmapBit) Summary

func (bmb *BitmapBit) Summary() string

type BitmapSet

type BitmapSet []*Bitmap

func (BitmapSet) Identifier

func (bs BitmapSet) Identifier(name string) (types.Entity, bool)

type Cluster

type Cluster struct {
	ID            *Number         `json:"id,omitempty"`
	Name          string          `json:"name,omitempty"`
	Description   string          `json:"description,omitempty"`
	Revisions     []*Revision     `json:"revisions,omitempty"`
	ParentCluster *Cluster        `json:"-"`
	Conformance   conformance.Set `json:"conformance,omitempty"`

	ClusterClassification

	Features *Features `json:"features,omitempty"`
	AssociatedDataTypes
	Attributes FieldSet   `json:"attributes,omitempty"`
	Events     EventSet   `json:"events,omitempty"`
	Commands   CommandSet `json:"commands,omitempty"`
	// contains filtered or unexported fields
}

func NewCluster

func NewCluster(source asciidoc.Element) *Cluster

func (*Cluster) Cluster

func (c *Cluster) Cluster() *Cluster

func (*Cluster) EntityType

func (c *Cluster) EntityType() types.EntityType

func (*Cluster) Equals

func (c *Cluster) Equals(e types.Entity) bool

func (*Cluster) Inherit

func (c *Cluster) Inherit(parent *Cluster) (linkedEntities []types.Entity, err error)

func (Cluster) Origin

func (e Cluster) Origin() (path string, line int)

func (Cluster) Parent

func (e Cluster) Parent() types.Entity

func (Cluster) Source

func (e Cluster) Source() asciidoc.Element

type ClusterClassification

type ClusterClassification struct {
	Hierarchy string  `json:"hierarchy,omitempty"`
	Role      string  `json:"role,omitempty"`
	Scope     string  `json:"scope,omitempty"`
	PICS      string  `json:"pics,omitempty"`
	Quality   Quality `json:"quality,omitempty"`
}

type ClusterComposition

type ClusterComposition struct {
	Cluster *Cluster
	Server  conformance.ConformanceState
	Client  conformance.ConformanceState

	Elements []*ElementComposition
}

type ClusterGroup

type ClusterGroup struct {
	Name string `json:"name,omitempty"`

	ClusterClassification

	Clusters []*Cluster `json:"clusters"`
	AssociatedDataTypes
	// contains filtered or unexported fields
}

func NewClusterGroup

func NewClusterGroup(name string, source asciidoc.Element, clusters []*Cluster) *ClusterGroup

func (ClusterGroup) Cluster

func (e ClusterGroup) Cluster() *Cluster

func (ClusterGroup) EntityType

func (c ClusterGroup) EntityType() types.EntityType

func (ClusterGroup) Explode

func (c ClusterGroup) Explode() []*Cluster

func (ClusterGroup) Origin

func (e ClusterGroup) Origin() (path string, line int)

func (ClusterGroup) Parent

func (e ClusterGroup) Parent() types.Entity

func (ClusterGroup) Source

func (e ClusterGroup) Source() asciidoc.Element

type ClusterRequirement

type ClusterRequirement struct {
	ClusterID   *Number         `json:"clusterId,omitempty"`
	ClusterName string          `json:"clusterName,omitempty"`
	Quality     Quality         `json:"quality,omitempty"`
	Conformance conformance.Set `json:"conformance,omitempty"`
	Interface   Interface       `json:"interface,omitempty"`

	Cluster *Cluster `json:"cluster,omitempty"`
	// contains filtered or unexported fields
}

func NewClusterRequirement

func NewClusterRequirement(parent *DeviceType, source asciidoc.Element) *ClusterRequirement

func (*ClusterRequirement) Clone

func (ClusterRequirement) Cluster

func (e ClusterRequirement) Cluster() *Cluster

func (*ClusterRequirement) EntityType

func (cr *ClusterRequirement) EntityType() types.EntityType

func (ClusterRequirement) Origin

func (e ClusterRequirement) Origin() (path string, line int)

func (ClusterRequirement) Parent

func (e ClusterRequirement) Parent() types.Entity

func (ClusterRequirement) Source

func (e ClusterRequirement) Source() asciidoc.Element

type Command

type Command struct {
	ID          *Number         `json:"id,omitempty"`
	Name        string          `json:"name,omitempty"`
	Description string          `json:"description,omitempty"`
	Direction   Interface       `json:"direction,omitempty"`
	Response    *types.DataType `json:"response,omitempty"`
	Conformance conformance.Set `json:"conformance,omitempty"`
	Quality     Quality         `json:"quality,omitempty"`
	Access      Access          `json:"access,omitempty"`

	Fields FieldSet `json:"fields,omitempty"`
	// contains filtered or unexported fields
}

func NewCommand

func NewCommand(source asciidoc.Element, parent types.Entity) *Command

func (*Command) Clone

func (c *Command) Clone() *Command

func (Command) Cluster

func (e Command) Cluster() *Cluster

func (*Command) EntityType

func (c *Command) EntityType() types.EntityType

func (*Command) Equals

func (c *Command) Equals(e types.Entity) bool

func (*Command) GetConformance

func (c *Command) GetConformance() conformance.Set

func (*Command) Inherit

func (c *Command) Inherit(parent *Command)

func (Command) Origin

func (e Command) Origin() (path string, line int)

func (Command) Parent

func (e Command) Parent() types.Entity

func (Command) Source

func (e Command) Source() asciidoc.Element

type CommandDirection

type CommandDirection uint8

type CommandSet

type CommandSet []*Command

func (CommandSet) Identifier

func (cs CommandSet) Identifier(name string) (types.Entity, bool)

func (CommandSet) ToEntities

func (cs CommandSet) ToEntities() []types.Entity

type Condition

type Condition struct {
	ID          *Number
	Feature     string
	Description string
	// contains filtered or unexported fields
}

func NewCondition

func NewCondition(source asciidoc.Element, dt *DeviceType) *Condition

func (Condition) Cluster

func (e Condition) Cluster() *Cluster

func (*Condition) EntityType

func (c *Condition) EntityType() types.EntityType

func (*Condition) GetConformance

func (c *Condition) GetConformance() conformance.Set

func (Condition) Origin

func (e Condition) Origin() (path string, line int)

func (Condition) Parent

func (e Condition) Parent() types.Entity

func (Condition) Source

func (e Condition) Source() asciidoc.Element

type ConditionRequirement added in v1.5.39

type ConditionRequirement struct {
	DeviceTypeID   *Number `json:"deviceTypeId,omitempty"`
	DeviceTypeName string  `json:"deviceTypeName,omitempty"`
	ConditionName  string  `json:"conditionName,omitempty"`

	DeviceType *DeviceType                   `json:"deviceType,omitempty"`
	Location   DeviceTypeRequirementLocation `json:"location,omitempty"`

	Condition   *Condition      `json:"condition,omitempty"`
	Conformance conformance.Set `json:"conformance,omitempty"`
	// contains filtered or unexported fields
}

func NewConditionRequirement added in v1.5.39

func NewConditionRequirement(parent types.Entity, source asciidoc.Element) *ConditionRequirement

func (ConditionRequirement) Cluster added in v1.5.39

func (e ConditionRequirement) Cluster() *Cluster

func (*ConditionRequirement) EntityType added in v1.5.39

func (c *ConditionRequirement) EntityType() types.EntityType

func (ConditionRequirement) Origin added in v1.5.39

func (e ConditionRequirement) Origin() (path string, line int)

func (ConditionRequirement) Parent added in v1.5.39

func (e ConditionRequirement) Parent() types.Entity

func (ConditionRequirement) Source added in v1.5.39

func (e ConditionRequirement) Source() asciidoc.Element

type Constant

type Constant struct {
	Name  string `json:"name,omitempty"`
	Value any    `json:"value,omitempty"`
	// contains filtered or unexported fields
}

func NewConstant

func NewConstant(source asciidoc.Element) *Constant

func (*Constant) Clone

func (s *Constant) Clone() *Constant

func (Constant) Cluster

func (e Constant) Cluster() *Cluster

func (*Constant) EntityType

func (*Constant) EntityType() types.EntityType

func (*Constant) Inherit

func (s *Constant) Inherit(parent *Constant)

func (Constant) Origin

func (e Constant) Origin() (path string, line int)

func (Constant) Parent

func (e Constant) Parent() types.Entity

func (Constant) Source

func (e Constant) Source() asciidoc.Element

type ConstantSet

type ConstantSet []*Constant

func (ConstantSet) Identifier

func (ss ConstantSet) Identifier(name string) (types.Entity, bool)

type ConstraintContext

type ConstraintContext struct {
	Field  *Field
	Fields FieldSet
	// contains filtered or unexported fields
}

func NewConstraintContext

func NewConstraintContext(field *Field, fields FieldSet) *ConstraintContext

func (*ConstraintContext) Child

func (cc *ConstraintContext) Child(field *Field, fields FieldSet) *ConstraintContext

func (*ConstraintContext) DataType

func (cc *ConstraintContext) DataType() *types.DataType

func (*ConstraintContext) Fallback

func (cc *ConstraintContext) Fallback(entity types.Entity, field constraint.Limit) (def types.DataTypeExtreme)

func (*ConstraintContext) MaxEntityValue

func (cc *ConstraintContext) MaxEntityValue(entity types.Entity, field constraint.Limit) (max types.DataTypeExtreme)

func (*ConstraintContext) MinEntityValue

func (cc *ConstraintContext) MinEntityValue(entity types.Entity, field constraint.Limit) (min types.DataTypeExtreme)

func (*ConstraintContext) Nullable

func (cc *ConstraintContext) Nullable() bool

type DataTypeCategory

type DataTypeCategory uint8
const (
	DataTypeCategoryUnknown DataTypeCategory = iota
	DataTypeCategoryBitmap
	DataTypeCategoryEnum
	DataTypeCategoryStruct
)

type DeviceType

type DeviceType struct {
	ID          *Number     `json:"id,omitempty"`
	Name        string      `json:"name,omitempty"`
	Description string      `json:"description,omitempty"`
	Revisions   []*Revision `json:"revisions,omitempty"`

	SupersetOf string `json:"supersetOf,omitempty"`
	Class      string `json:"class,omitempty"`
	Scope      string `json:"scope,omitempty"`

	SubsetDeviceType *DeviceType `json:"-"`

	Conditions []*Condition `json:"conditions,omitempty"`

	ClusterRequirements   []*ClusterRequirement   `json:"clusterRequirements,omitempty"`
	ElementRequirements   []*ElementRequirement   `json:"elementRequirements,omitempty"`
	ConditionRequirements []*ConditionRequirement `json:"conditionRequirements,omitempty"`
	TagRequirements       []*TagRequirement       `json:"tagRequirements,omitempty"`

	DeviceTypeRequirements                []*DeviceTypeRequirement        `json:"deviceTypeRequirements,omitempty"`
	ComposedDeviceTypeClusterRequirements []*DeviceTypeClusterRequirement `json:"composedDeviceTypeClusterRequirements,omitempty"`
	ComposedDeviceTypeElementRequirements []*DeviceTypeElementRequirement `json:"composedDeviceTypeElementRequirements,omitempty"`

	ComposedDeviceTagRequirements []*DeviceTypeTagRequirement `json:"composedDeviceSemanticTagRequirements,omitempty"`
	// contains filtered or unexported fields
}

func NewDeviceType

func NewDeviceType(source asciidoc.Element) *DeviceType

func (DeviceType) Cluster

func (e DeviceType) Cluster() *Cluster

func (*DeviceType) EntityType

func (dt *DeviceType) EntityType() types.EntityType

func (*DeviceType) Identifier

func (dt *DeviceType) Identifier(name string) (types.Entity, bool)

func (DeviceType) Origin

func (e DeviceType) Origin() (path string, line int)

func (DeviceType) Parent

func (e DeviceType) Parent() types.Entity

func (DeviceType) Source

func (e DeviceType) Source() asciidoc.Element

type DeviceTypeClusterRequirement

type DeviceTypeClusterRequirement struct {
	DeviceTypeID   *Number `json:"deviceTypeId,omitempty"`
	DeviceTypeName string  `json:"deviceTypeName,omitempty"`

	ClusterRequirement *ClusterRequirement
	Origin             RequirementOrigin

	DeviceType            *DeviceType
	DeviceTypeRequirement *DeviceTypeRequirement
	// contains filtered or unexported fields
}

func NewDeviceTypeClusterRequirement added in v1.5.39

func NewDeviceTypeClusterRequirement(parent types.Entity, clusterRequirement *ClusterRequirement, source asciidoc.Element) *DeviceTypeClusterRequirement

func (*DeviceTypeClusterRequirement) Clone

func (DeviceTypeClusterRequirement) Cluster added in v1.5.39

func (e DeviceTypeClusterRequirement) Cluster() *Cluster

func (DeviceTypeClusterRequirement) Origin

func (e DeviceTypeClusterRequirement) Origin() (path string, line int)

func (DeviceTypeClusterRequirement) Parent added in v1.5.39

func (e DeviceTypeClusterRequirement) Parent() types.Entity

func (DeviceTypeClusterRequirement) Source added in v1.5.39

func (e DeviceTypeClusterRequirement) Source() asciidoc.Element

type DeviceTypeComposition

type DeviceTypeComposition struct {
	DeviceType             *DeviceType
	DeviceTypeRequirements []*DeviceTypeRequirement

	ClusterRequirements []*DeviceTypeClusterRequirement
	ElementRequirements []*DeviceTypeElementRequirement
	TagRequirements     []*DeviceTypeTagRequirement

	ComposedDeviceTypes map[DeviceTypeRequirementLocation][]*DeviceTypeComposition
}

func (*DeviceTypeComposition) Clone

type DeviceTypeElementRequirement

type DeviceTypeElementRequirement struct {
	DeviceTypeID   *Number `json:"deviceTypeId,omitempty"`
	DeviceTypeName string  `json:"deviceTypeName,omitempty"`

	ElementRequirement *ElementRequirement
	Origin             RequirementOrigin

	DeviceType            *DeviceType
	DeviceTypeRequirement *DeviceTypeRequirement
	// contains filtered or unexported fields
}

func NewDeviceTypeElementRequirement added in v1.5.39

func NewDeviceTypeElementRequirement(parent types.Entity, elementRequirement *ElementRequirement, source asciidoc.Element) *DeviceTypeElementRequirement

func (*DeviceTypeElementRequirement) Clone

func (DeviceTypeElementRequirement) Cluster added in v1.5.39

func (e DeviceTypeElementRequirement) Cluster() *Cluster

func (DeviceTypeElementRequirement) Origin

func (e DeviceTypeElementRequirement) Origin() (path string, line int)

func (DeviceTypeElementRequirement) Parent added in v1.5.39

func (e DeviceTypeElementRequirement) Parent() types.Entity

func (DeviceTypeElementRequirement) Source added in v1.5.39

func (e DeviceTypeElementRequirement) Source() asciidoc.Element

type DeviceTypeRequirement

type DeviceTypeRequirement struct {
	DeviceTypeID   *Number                       `json:"deviceTypeId,omitempty"`
	DeviceTypeName string                        `json:"deviceTypeName,omitempty"`
	Constraint     constraint.Constraint         `json:"constraint,omitempty"`
	Conformance    conformance.Set               `json:"conformance,omitempty"`
	AllowsSuperset bool                          `json:"allowsSuperset,omitempty"`
	Location       DeviceTypeRequirementLocation `json:"location,omitempty"`

	DeviceType *DeviceType `json:"deviceType,omitempty"`
	// contains filtered or unexported fields
}

func NewDeviceTypeRequirement

func NewDeviceTypeRequirement(parent *DeviceType, source asciidoc.Element) *DeviceTypeRequirement

func (*DeviceTypeRequirement) Clone

func (DeviceTypeRequirement) Cluster

func (e DeviceTypeRequirement) Cluster() *Cluster

func (*DeviceTypeRequirement) EntityType

func (dtr *DeviceTypeRequirement) EntityType() types.EntityType

func (DeviceTypeRequirement) Origin

func (e DeviceTypeRequirement) Origin() (path string, line int)

func (DeviceTypeRequirement) Parent

func (e DeviceTypeRequirement) Parent() types.Entity

func (DeviceTypeRequirement) Source

func (e DeviceTypeRequirement) Source() asciidoc.Element

type DeviceTypeRequirementLocation

type DeviceTypeRequirementLocation uint8
const (
	DeviceTypeRequirementLocationUnknown DeviceTypeRequirementLocation = iota
	DeviceTypeRequirementLocationDeviceEndpoint
	DeviceTypeRequirementLocationChildEndpoint
	DeviceTypeRequirementLocationRootEndpoint
	DeviceTypeRequirementLocationDescendantEndpoint
)

func (DeviceTypeRequirementLocation) String

type DeviceTypeTagRequirement added in v1.5.45

type DeviceTypeTagRequirement struct {
	TagRequirement *TagRequirement

	DeviceTypeID   *Number `json:"deviceTypeId,omitempty"`
	DeviceTypeName string  `json:"deviceTypeName,omitempty"`

	DeviceType            *DeviceType `json:"deviceType,omitempty"`
	DeviceTypeRequirement *DeviceTypeRequirement
	// contains filtered or unexported fields
}

func NewDeviceTypeTagRequirement added in v1.5.45

func NewDeviceTypeTagRequirement(parent *DeviceType, source asciidoc.Element) *DeviceTypeTagRequirement

func (*DeviceTypeTagRequirement) Clone added in v1.5.45

func (DeviceTypeTagRequirement) Cluster added in v1.5.45

func (e DeviceTypeTagRequirement) Cluster() *Cluster

func (DeviceTypeTagRequirement) Origin added in v1.5.45

func (e DeviceTypeTagRequirement) Origin() (path string, line int)

func (DeviceTypeTagRequirement) Parent added in v1.5.45

func (e DeviceTypeTagRequirement) Parent() types.Entity

func (DeviceTypeTagRequirement) Source added in v1.5.45

func (e DeviceTypeTagRequirement) Source() asciidoc.Element

type DocType

type DocType uint8
const (
	DocTypeUnknown DocType = iota
	DocTypeCluster
	DocTypeAppClusterIndex
	DocTypeAppClusters
	DocTypeDeviceType
	DocTypeDeviceTypes
	DocTypeDeviceTypeIndex
	DocTypeCommonProtocol
	DocTypeDataModel
	DocTypeDeviceAttestation
	DocTypeMultiAdmin
	DocTypeNamespace
	DocTypeNamespaces
	DocTypeQRCode
	DocTypeRendezvous
	DocTypeSecureChannel
	DocTypeServiceDeviceManagement
	DocTypeSoftAP
	DocTypeBaseDeviceType
)

func (DocType) String

func (dt DocType) String() string

type Domain

type Domain uint8
const (
	DomainUnknown Domain = iota
	DomainGeneral
	DomainCHIP
	DomainMedia
	DomainLighting
	DomainAppliances
	DomainClosures
	DomainHVAC
	DomainMeasurementAndSensing
	DomainRobots
	DomainHomeAutomation
	DomainEnergyManagement
	DomainCameras
	DomainNetworkInfrastructure
)

func DomainFromDocType

func DomainFromDocType(docType DocType) Domain

func (Domain) MarshalYAML

func (i Domain) MarshalYAML() ([]byte, error)

func (*Domain) UnmarshalYAML

func (i *Domain) UnmarshalYAML(b []byte) error

type ElementComposition

type ElementComposition struct {
	ElementRequirement *ElementRequirement
	State              conformance.ConformanceState
}

type ElementRequirement

type ElementRequirement struct {
	ClusterID   *Number          `json:"clusterId,omitempty"`
	ClusterName string           `json:"clusterName,omitempty"`
	Element     types.EntityType `json:"element,omitempty"`
	Name        string           `json:"name,omitempty"`
	Field       string           `json:"field,omitempty"`

	Entity types.Entity `json:"entity,omitempty"`

	Constraint  constraint.Constraint `json:"constraint,omitempty"`
	Quality     Quality               `json:"quality,omitempty"`
	Access      Access                `json:"access,omitempty"`
	Conformance conformance.Set       `json:"conformance,omitempty"`

	Cluster *Cluster `json:"cluster,omitempty"`
	// contains filtered or unexported fields
}

func NewElementRequirement

func NewElementRequirement(parent types.Entity, source asciidoc.Element) ElementRequirement

func (*ElementRequirement) Clone

func (ElementRequirement) Cluster

func (e ElementRequirement) Cluster() *Cluster

func (*ElementRequirement) EntityType

func (er *ElementRequirement) EntityType() types.EntityType

func (ElementRequirement) Origin

func (e ElementRequirement) Origin() (path string, line int)

func (ElementRequirement) Parent

func (e ElementRequirement) Parent() types.Entity

func (ElementRequirement) Source

func (e ElementRequirement) Source() asciidoc.Element

type Enum

type Enum struct {
	Name        string          `json:"name,omitempty"`
	Description string          `json:"description,omitempty"`
	Type        *types.DataType `json:"type,omitempty"`
	Values      EnumValueSet    `json:"values,omitempty"`
	// contains filtered or unexported fields
}

func NewEnum

func NewEnum(source asciidoc.Element, parent types.Entity) *Enum

func (*Enum) BaseDataType

func (e *Enum) BaseDataType() types.BaseDataType

func (*Enum) Clone

func (e *Enum) Clone() *Enum

func (Enum) Cluster

func (e Enum) Cluster() *Cluster

func (*Enum) EntityType

func (*Enum) EntityType() types.EntityType

func (*Enum) Equals

func (en *Enum) Equals(e types.Entity) bool

func (*Enum) Inherit

func (e *Enum) Inherit(parent *Enum) error

func (*Enum) NullValue

func (e *Enum) NullValue() uint64

func (Enum) Origin

func (e Enum) Origin() (path string, line int)

func (Enum) Parent

func (e Enum) Parent() types.Entity

func (Enum) Source

func (e Enum) Source() asciidoc.Element

type EnumSet

type EnumSet []*Enum

func (EnumSet) Identifier

func (es EnumSet) Identifier(name string) (types.Entity, bool)

type EnumValue

type EnumValue struct {
	Value       *Number         `json:"value,omitempty"`
	Name        string          `json:"name,omitempty"`
	Summary     string          `json:"summary,omitempty"`
	Conformance conformance.Set `json:"conformance,omitempty"`
	// contains filtered or unexported fields
}

func NewEnumValue

func NewEnumValue(source asciidoc.Element, parent types.Entity) *EnumValue

func (*EnumValue) Clone

func (ev *EnumValue) Clone() *EnumValue

func (EnumValue) Cluster

func (e EnumValue) Cluster() *Cluster

func (*EnumValue) EntityType

func (ev *EnumValue) EntityType() types.EntityType

func (*EnumValue) Equals

func (ev *EnumValue) Equals(e types.Entity) bool

func (*EnumValue) GetConformance

func (ev *EnumValue) GetConformance() conformance.Set

func (EnumValue) Origin

func (e EnumValue) Origin() (path string, line int)

func (EnumValue) Parent

func (e EnumValue) Parent() types.Entity

func (EnumValue) Source

func (e EnumValue) Source() asciidoc.Element

type EnumValueSet

type EnumValueSet []*EnumValue

func (EnumValueSet) Identifier

func (es EnumValueSet) Identifier(name string) (types.Entity, bool)

type Event

type Event struct {
	ID          *Number         `json:"id,omitempty"`
	Name        string          `json:"name,omitempty"`
	Description string          `json:"description,omitempty"`
	Priority    string          `json:"priority,omitempty"`
	Conformance conformance.Set `json:"conformance,omitempty"`
	Access      Access          `json:"access,omitempty"`

	Fields FieldSet `json:"fields,omitempty"`
	// contains filtered or unexported fields
}

func NewEvent

func NewEvent(source asciidoc.Element, parent types.Entity) *Event

func (*Event) Clone

func (e *Event) Clone() *Event

func (Event) Cluster

func (e Event) Cluster() *Cluster

func (*Event) EntityType

func (e *Event) EntityType() types.EntityType

func (*Event) Equals

func (ev *Event) Equals(e types.Entity) bool

func (*Event) GetConformance

func (e *Event) GetConformance() conformance.Set

func (*Event) Inherit

func (e *Event) Inherit(parent *Event)

func (Event) Origin

func (e Event) Origin() (path string, line int)

func (Event) Parent

func (e Event) Parent() types.Entity

func (Event) Source

func (e Event) Source() asciidoc.Element

type EventSet

type EventSet []*Event

func (EventSet) Identifier

func (es EventSet) Identifier(name string) (types.Entity, bool)

func (EventSet) ToEntities

func (es EventSet) ToEntities() []types.Entity

type FabricScoping

type FabricScoping uint8
const (
	FabricScopingUnknown FabricScoping = iota
	FabricScopingScoped
	FabricScopingUnscoped
)

func (FabricScoping) MarshalJSON

func (fs FabricScoping) MarshalJSON() ([]byte, error)

func (FabricScoping) String

func (fs FabricScoping) String() string

func (*FabricScoping) UnmarshalJSON

func (fs *FabricScoping) UnmarshalJSON(data []byte) error

type FabricSensitivity

type FabricSensitivity uint8
const (
	FabricSensitivityUnknown FabricSensitivity = iota
	FabricSensitivitySensitive
	FabricSensitivityInsensitive
)

func (FabricSensitivity) MarshalJSON

func (fs FabricSensitivity) MarshalJSON() ([]byte, error)

func (FabricSensitivity) MarshalYAML

func (fs FabricSensitivity) MarshalYAML() ([]byte, error)

func (FabricSensitivity) String

func (fs FabricSensitivity) String() string

func (*FabricSensitivity) UnmarshalJSON

func (fs *FabricSensitivity) UnmarshalJSON(data []byte) error

func (*FabricSensitivity) UnmarshalYAML

func (fs *FabricSensitivity) UnmarshalYAML(b []byte) error

type Feature

type Feature struct {
	BitmapBit
	Code string
}

func NewFeature

func NewFeature(source asciidoc.Element, bit string, name string, code string, summary string, conformance conformance.Set) *Feature

func (*Feature) Clone

func (f *Feature) Clone() Bit

func (*Feature) CloneTo

func (f *Feature) CloneTo(parent types.Entity) Bit

func (Feature) Cluster

func (e Feature) Cluster() *Cluster

func (*Feature) Entity

func (f *Feature) Entity() types.EntityType

func (*Feature) Equals

func (f *Feature) Equals(e types.Entity) bool

func (*Feature) MarshalJSON

func (f *Feature) MarshalJSON() ([]byte, error)

func (Feature) Origin

func (e Feature) Origin() (path string, line int)

func (Feature) Parent

func (e Feature) Parent() types.Entity

func (Feature) Source

func (e Feature) Source() asciidoc.Element

type Features

type Features struct {
	Bitmap
}

func NewFeatures

func NewFeatures(source asciidoc.Element, parent types.Entity) *Features

func (*Features) AddFeatureBit

func (fs *Features) AddFeatureBit(b *Feature)

func (*Features) Clone

func (fs *Features) Clone() *Features

func (*Features) CloneTo

func (fs *Features) CloneTo(cluster *Cluster) *Features

func (Features) Cluster

func (e Features) Cluster() *Cluster

func (*Features) FeatureBits

func (fs *Features) FeatureBits() iter.Seq[*Feature]

func (*Features) Identifier

func (fs *Features) Identifier(id string) (types.Entity, bool)

func (Features) Origin

func (e Features) Origin() (path string, line int)

func (Features) Parent

func (e Features) Parent() types.Entity

func (Features) Source

func (e Features) Source() asciidoc.Element

type Field

type Field struct {
	ID   *Number         `json:"id,omitempty"`
	Name string          `json:"name,omitempty"`
	Type *types.DataType `json:"type,omitempty"`

	Constraint  constraint.Constraint `json:"constraint,omitempty"`
	Quality     Quality               `json:"quality,omitempty"`
	Access      Access                `json:"access,omitempty"`
	Fallback    constraint.Limit      `json:"fallback,omitempty"`
	Conformance conformance.Set       `json:"conformance,omitempty"`

	// Hopefully this will go away as we continue disco-balling the spec
	AnonymousType types.Entity `json:"anonymousType,omitempty"`
	// contains filtered or unexported fields
}

func NewAttribute

func NewAttribute(source asciidoc.Element, parent types.Entity) *Field

func NewField

func NewField(source asciidoc.Element, parent types.Entity, entityType types.EntityType) *Field

func (*Field) Clone

func (f *Field) Clone() *Field

func (Field) Cluster

func (e Field) Cluster() *Cluster

func (*Field) EntityType

func (f *Field) EntityType() types.EntityType

func (*Field) Equals

func (f *Field) Equals(e types.Entity) bool

func (*Field) GetConformance

func (f *Field) GetConformance() conformance.Set

func (*Field) Inherit

func (f *Field) Inherit(parent *Field)

func (Field) Origin

func (e Field) Origin() (path string, line int)

func (Field) Parent

func (e Field) Parent() types.Entity

func (Field) Source

func (e Field) Source() asciidoc.Element

type FieldSet

type FieldSet []*Field

func (FieldSet) Get

func (fs FieldSet) Get(name string) *Field

func (FieldSet) Identifier

func (fs FieldSet) Identifier(name string) (types.Entity, bool)

func (FieldSet) Inherit

func (fs FieldSet) Inherit(parent types.Entity, fields FieldSet) (nfs FieldSet)

func (FieldSet) ToEntities

func (fs FieldSet) ToEntities() []types.Entity

type Interface

type Interface uint8
const (
	InterfaceUnknown Interface = iota
	InterfaceClient
	InterfaceServer
)

func (Interface) Compare

func (i Interface) Compare(o Interface) int

func (Interface) MarshalJSON

func (s Interface) MarshalJSON() ([]byte, error)

func (Interface) String

func (s Interface) String() string

func (*Interface) UnmarshalJSON

func (s *Interface) UnmarshalJSON(data []byte) (err error)

type Namespace

type Namespace struct {
	ID           *Number        `json:"id,omitempty"`
	Name         string         `json:"name,omitempty"`
	SemanticTags []*SemanticTag `json:"semanticTags,omitempty"`
	// contains filtered or unexported fields
}

func NewNamespace

func NewNamespace(source asciidoc.Element) *Namespace

func (Namespace) Cluster

func (e Namespace) Cluster() *Cluster

func (*Namespace) EntityType

func (*Namespace) EntityType() types.EntityType

func (Namespace) Origin

func (e Namespace) Origin() (path string, line int)

func (Namespace) Parent

func (e Namespace) Parent() types.Entity

func (Namespace) Source

func (e Namespace) Source() asciidoc.Element

type Number

type Number struct {
	// contains filtered or unexported fields
}

func NewNumber

func NewNumber(id uint64) *Number

func NumberFromExtreme

func NumberFromExtreme(de types.DataTypeExtreme) *Number

func ParseFormattedNumber

func ParseFormattedNumber(s string) (*Number, types.NumberFormat)

func ParseNumber

func ParseNumber(s string) *Number

func (*Number) Clone

func (n *Number) Clone() *Number

func (*Number) Compare

func (n *Number) Compare(oid *Number) int

func (*Number) Equals

func (n *Number) Equals(oid *Number) bool

func (*Number) Format

func (n *Number) Format() types.NumberFormat

func (*Number) HexString

func (n *Number) HexString() string

func (*Number) IntString

func (n *Number) IntString() string

func (*Number) Is

func (n *Number) Is(oid uint64) bool

func (Number) MarshalJSON

func (n Number) MarshalJSON() ([]byte, error)

func (*Number) ShortHexString

func (n *Number) ShortHexString() string

func (*Number) Text

func (n *Number) Text() string

func (*Number) UnmarshalJSON

func (n *Number) UnmarshalJSON(data []byte) error

func (*Number) Valid

func (n *Number) Valid() bool

func (*Number) Value

func (n *Number) Value() uint64

type Privilege

type Privilege uint8
const (
	PrivilegeUnknown Privilege = iota
	PrivilegeView
	PrivilegeOperate
	PrivilegeManage
	PrivilegeAdminister
)

func DefaultInvokePrivilege

func DefaultInvokePrivilege(entityType types.EntityType) Privilege

func DefaultReadPrivilege

func DefaultReadPrivilege(entityType types.EntityType) Privilege

func DefaultWritePrivilege

func DefaultWritePrivilege(entityType types.EntityType) Privilege

func (Privilege) MarshalJSON

func (p Privilege) MarshalJSON() ([]byte, error)

func (Privilege) MarshalXMLAttr

func (p Privilege) MarshalXMLAttr(name xml.Name) (xml.Attr, error)

func (Privilege) String

func (p Privilege) String() string

func (*Privilege) UnmarshalJSON

func (p *Privilege) UnmarshalJSON(data []byte) error

func (*Privilege) UnmarshalXMLAttr

func (p *Privilege) UnmarshalXMLAttr(attr xml.Attr) error

type Quality

type Quality uint32

func ParseQuality

func ParseQuality(s string) Quality

func (Quality) Any

func (q Quality) Any(o Quality) bool

func (Quality) Has

func (q Quality) Has(o Quality) bool

func (*Quality) Inherit

func (q *Quality) Inherit(oq Quality)

func (Quality) String

func (q Quality) String() string

type RequirementOrigin

type RequirementOrigin uint8
const (
	RequirementOriginUnknown RequirementOrigin = iota
	RequirementOriginBaseDeviceType
	RequirementOriginSubsetDeviceType
	RequirementOriginComposedDeviceType
	RequirementOriginDeviceType
)

func (RequirementOrigin) Compare

func (s RequirementOrigin) Compare(oro RequirementOrigin) int

func (RequirementOrigin) String

func (s RequirementOrigin) String() string

type Revision

type Revision struct {
	Number      string `json:"number,omitempty"`
	Description string `json:"description,omitempty"`
}

type Section

type Section uint8
const (
	SectionUnknown Section = iota
	SectionPrefix          // Special section type for everything that comes before any known sections
	SectionTop
	SectionIntroduction
	SectionRevisionHistory
	SectionClassification
	SectionCluster
	SectionClusterID
	SectionFeatures
	SectionFeature
	SectionDependencies
	SectionDataTypes
	SectionDataTypeBitmap
	SectionDataTypeEnum
	SectionDataTypeStruct
	SectionDeviceType
	SectionStatusCodes
	SectionAttributes
	SectionAttribute
	SectionCommands
	SectionCommand
	SectionEvents
	SectionEvent
	SectionNamespace
	SectionConditions
	SectionDeviceTypeRequirements
	SectionClusterRequirements
	SectionClusterRestrictions
	SectionElementRequirements
	SectionSemanticTagRequirements
	SectionComposedDeviceTypeClusterRequirements
	SectionComposedDeviceTypeConditionRequirements
	SectionComposedDeviceTypeElementRequirements
	SectionComposedDeviceTypeSemanticTagRequirements
	SectionEndpointComposition
	SectionField
	SectionValue
	SectionBit
	SectionDerivedClusterNamespace
	SectionModeTags
	SectionGlobalElements
	SectionDataTypeDef
	SectionDataTypeConstant
)

func (Section) String

func (st Section) String() string

type SemanticTag

type SemanticTag struct {
	ID          *Number `json:"id,omitempty"`
	Name        string  `json:"name,omitempty"`
	Description string  `json:"description,omitempty"`
	// contains filtered or unexported fields
}

func NewSemanticTag

func NewSemanticTag(namespace *Namespace, source asciidoc.Element) *SemanticTag

func (SemanticTag) Cluster

func (e SemanticTag) Cluster() *Cluster

func (*SemanticTag) EntityType

func (*SemanticTag) EntityType() types.EntityType

func (SemanticTag) Origin

func (e SemanticTag) Origin() (path string, line int)

func (SemanticTag) Parent

func (e SemanticTag) Parent() types.Entity

func (SemanticTag) Source

func (e SemanticTag) Source() asciidoc.Element

type Source

type Source interface {
	Origin() (path string, line int)
}

type Struct

type Struct struct {
	Name          string        `json:"name,omitempty"`
	Description   string        `json:"description,omitempty"`
	Fields        FieldSet      `json:"fields,omitempty"`
	FabricScoping FabricScoping `json:"fabricScoped,omitempty"`
	// contains filtered or unexported fields
}

func NewStruct

func NewStruct(source asciidoc.Element, parent types.Entity) *Struct

func (*Struct) Clone

func (s *Struct) Clone() *Struct

func (Struct) Cluster

func (e Struct) Cluster() *Cluster

func (*Struct) EntityType

func (*Struct) EntityType() types.EntityType

func (*Struct) Equals

func (s *Struct) Equals(e types.Entity) bool

func (*Struct) Inherit

func (s *Struct) Inherit(parent *Struct)

func (Struct) Origin

func (e Struct) Origin() (path string, line int)

func (Struct) Parent

func (e Struct) Parent() types.Entity

func (Struct) Source

func (e Struct) Source() asciidoc.Element

type StructSet

type StructSet []*Struct

func (StructSet) Identifier

func (ss StructSet) Identifier(name string) (types.Entity, bool)

type Table

type Table struct {
	AllowedColumns  []TableColumn
	RequiredColumns []TableColumn
	BannedColumns   []TableColumn
	ColumnOrder     []TableColumn
	ColumnRenames   map[TableColumn]TableColumn
}

type TableColumn

type TableColumn uint8
const (
	TableColumnUnknown TableColumn = iota
	TableColumnID                  // Special section type for everything that comes before any known sections
	TableColumnName
	TableColumnType
	TableColumnConstraint
	TableColumnQuality
	TableColumnFallback
	TableColumnAccess
	TableColumnConformance
	TableColumnPriority
	TableColumnHierarchy
	TableColumnRole
	TableColumnContext
	TableColumnScope
	TableColumnPICS
	TableColumnPICSCode
	TableColumnValue
	TableColumnBit
	TableColumnCode
	TableColumnStatusCode
	TableColumnFeature
	TableColumnAttributeID
	TableColumnClusterID
	TableColumnEventID
	TableColumnCommandID
	TableColumnFieldID
	TableColumnDevice
	TableColumnDeviceID
	TableColumnDeviceName
	TableColumnSupersetOf
	TableColumnClass
	TableColumnDirection
	TableColumnDescription
	TableColumnRevision
	TableColumnResponse
	TableColumnSummary
	TableColumnCluster
	TableColumnClusterName
	TableColumnElement
	TableColumnClientServer
	TableColumnCondition
	TableColumnConditionID
	TableColumnModeTagValue
	TableColumnNamespace
	TableColumnNamespaceID
	TableColumnTag
	TableColumnTagID
	TableColumnLocation
	TableColumnField
)

func (TableColumn) String

func (tc TableColumn) String() string

type TableType

type TableType uint8
const (
	TableTypeUnknown TableType = iota
	TableTypeAttributes
	TableTypeAppClusterClassification
	TableTypeDeviceTypeClassification
	TableTypeClassification
	TableTypeClusterID
	TableTypeCommands
	TableTypeCommandFields
	TableTypeStruct
	TableTypeEnum
	TableTypeBitmap
	TableTypeEvents
	TableTypeEventFields
	TableTypeFeatures
	TableTypeDeviceID
	TableTypeDeviceTypeRequirements
	TableTypeClusterRequirements
	TableTypeElementRequirements
	TableTypeComposedDeviceTypeClusterRequirements
	TableTypeComposedDeviceTypeElementRequirements
	TableTypeConditionRequirements
	TableTypeTagRequirements
)

type TagRequirement added in v1.5.46

type TagRequirement struct {
	Constraint  constraint.Constraint `json:"constraint,omitempty"`
	Conformance conformance.Set       `json:"conformance,omitempty"`

	NamespaceID   *Number `json:"namespaceId,omitempty"`
	NamespaceName string  `json:"namespaceName,omitempty"`

	SemanticTagID   *Number `json:"semanticTagId,omitempty"`
	SemanticTagName string  `json:"semanticTagName,omitempty"`

	Namespace   *Namespace   `json:"namespace,omitempty"`
	SemanticTag *SemanticTag `json:"semanticTag,omitempty"`
	// contains filtered or unexported fields
}

func NewTagRequirement added in v1.5.46

func NewTagRequirement(parent *DeviceType, source asciidoc.Element) *TagRequirement

func (*TagRequirement) Clone added in v1.5.46

func (dtcr *TagRequirement) Clone() *TagRequirement

func (TagRequirement) Cluster added in v1.5.46

func (e TagRequirement) Cluster() *Cluster

func (TagRequirement) Origin added in v1.5.46

func (e TagRequirement) Origin() (path string, line int)

func (TagRequirement) Parent added in v1.5.46

func (e TagRequirement) Parent() types.Entity

func (TagRequirement) Source added in v1.5.46

func (e TagRequirement) Source() asciidoc.Element

type Timing

type Timing uint8
const (
	TimingUnknown Timing = iota
	TimingTimed
	TimingUntimed
)

func (Timing) MarshalJSON

func (t Timing) MarshalJSON() ([]byte, error)

func (Timing) String

func (t Timing) String() string

func (*Timing) UnmarshalJSON

func (t *Timing) UnmarshalJSON(data []byte) error

type TypeDef

type TypeDef struct {
	Name        string          `json:"name,omitempty"`
	Description string          `json:"description,omitempty"`
	Type        *types.DataType `json:"type,omitempty"`
	// contains filtered or unexported fields
}

func NewTypeDef

func NewTypeDef(source asciidoc.Element, parent types.Entity) *TypeDef

func (*TypeDef) Clone

func (s *TypeDef) Clone() *TypeDef

func (TypeDef) Cluster

func (e TypeDef) Cluster() *Cluster

func (*TypeDef) EntityType

func (*TypeDef) EntityType() types.EntityType

func (*TypeDef) Inherit

func (s *TypeDef) Inherit(parent *TypeDef)

func (TypeDef) Origin

func (e TypeDef) Origin() (path string, line int)

func (TypeDef) Parent

func (e TypeDef) Parent() types.Entity

func (TypeDef) Source

func (e TypeDef) Source() asciidoc.Element

type TypeDefSet

type TypeDefSet []*TypeDef

func (TypeDefSet) Identifier

func (ss TypeDefSet) Identifier(name string) (types.Entity, bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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