The pre-push validation-coverage gate caught the previous commit's renames (Check/Issue/SubjectContext/BuiltinCheck/AnyCheck) as unclassified new types and stale old entries. Reclassify them under their new names and add the new Traversable protocol.
100 lines
7.0 KiB
Plaintext
100 lines
7.0 KiB
Plaintext
# Public-type validation coverage manifest (validation-rules.md).
|
|
# Every public type in the PureYAML target is classified exactly once.
|
|
# Columns (tab-separated): <fully.qualified.Type> <validated|excluded> <one-line reason>
|
|
# `validated`: carries a runtime invariant the type system does not enforce; backed by a
|
|
# Validation<Subject> in the framework phase.
|
|
# `excluded`: a caseless namespace, a closed sum type whose illegal states are unrepresentable,
|
|
# a pure data-transfer type, an error value, or engine/machinery that is not a validated subject.
|
|
# scripts/check-validation-coverage.sh fails the build if a public type is missing here or a line
|
|
# here is no longer public.
|
|
|
|
# --- namespaces (caseless enums) ---
|
|
PureYAML excluded caseless namespace; holds no instances or state
|
|
PureYAML.Decoding excluded caseless namespace; holds no instances or state
|
|
PureYAML.Emitting excluded caseless namespace; holds no instances or state
|
|
PureYAML.Encoding excluded caseless namespace; holds no instances or state
|
|
PureYAML.Model excluded caseless namespace; holds no instances or state
|
|
PureYAML.Parsing excluded caseless namespace; holds no instances or state
|
|
PureYAML.Stream excluded caseless namespace; holds no instances or state
|
|
PureYAML.Tagged excluded caseless namespace; holds no instances or state
|
|
PureYAML.Validation excluded caseless namespace; holds no instances or state
|
|
|
|
# --- model ---
|
|
PureYAML.Model.Value validated core YAML value; mapping-key uniqueness is a runtime invariant (merges and aliases are resolved at parse time)
|
|
PureYAML.Model.Mapping validated mapping keys must be unique within a mapping
|
|
PureYAML.Model.Pair excluded data-transfer key/value pair; no invariant beyond its components
|
|
PureYAML.Model.Key excluded closed sum type (string/sequence/mapping); illegal states unrepresentable
|
|
PureYAML.Model.LocatedValue excluded located projection of a Model.Value with source spans; the value invariant lives on the projected Model.Value
|
|
PureYAML.Model.LocatedPair excluded located key/value pair; data-transfer, no invariant beyond its components
|
|
PureYAML.Model.SourceRange excluded source span (start/end position); positional data-transfer, no invariant
|
|
PureYAML.Model.SourcePosition excluded source position (line/column); positional data-transfer, no invariant
|
|
|
|
# --- stream ---
|
|
PureYAML.Stream.Document excluded wraps a validated Model.Value plus an index; no own invariant
|
|
PureYAML.Stream.Issue excluded diagnostic data-transfer type
|
|
PureYAML.Stream.Issue.Collection excluded error aggregate; data-transfer
|
|
PureYAML.Stream.Result excluded diagnostic result data-transfer type
|
|
|
|
# --- parsing ---
|
|
PureYAML.Parsing.ParseError excluded error enum; cases are unrepresentable-illegal, carries diagnostics only
|
|
PureYAML.Parsing.Parser excluded parsing engine; produces values, is not itself a validated subject
|
|
|
|
# --- emitting ---
|
|
PureYAML.Emitting.Dumper excluded emitter engine; not a validated subject
|
|
PureYAML.Emitting.Options excluded emitter configuration; no cross-field invariant
|
|
PureYAML.Emitting.CollectionStyle excluded closed enum; illegal states unrepresentable
|
|
PureYAML.Emitting.ScalarStyle excluded closed enum; illegal states unrepresentable
|
|
|
|
# --- decoding / encoding (Codable machinery) ---
|
|
PureYAML.Decoding.Decoder excluded Codable decoding machinery; not a validated subject
|
|
PureYAML.Decoding.Error excluded error enum; data-transfer
|
|
PureYAML.Encoding.Encoder excluded Codable encoding machinery; not a validated subject
|
|
PureYAML.Encoding.Error excluded error enum; data-transfer
|
|
|
|
# --- tagged node subsystem ---
|
|
PureYAML.Tagged.Node validated tagged node tree; mapping-key uniqueness is a runtime invariant
|
|
PureYAML.Tagged.Mapping validated tagged mapping keys must be unique
|
|
PureYAML.Tagged.Pair excluded data-transfer key/value pair
|
|
PureYAML.Tagged.Scalar excluded data-transfer scalar (value + tag)
|
|
PureYAML.Tagged.Sequence excluded data-transfer ordered nodes
|
|
PureYAML.Tagged.Tag excluded data-transfer tag identifier
|
|
PureYAML.Tagged.NodeKind excluded closed enum; illegal states unrepresentable
|
|
PureYAML.Tagged.Document excluded wraps a validated Tagged.Node
|
|
PureYAML.Tagged.ConstructionContext excluded construction context data-transfer type
|
|
PureYAML.Tagged.ConstructionError excluded error enum; data-transfer
|
|
PureYAML.Tagged.Constructor excluded tag-construction engine; not a validated subject
|
|
PureYAML.Tagged.BuiltinValidation excluded caseless namespace of the tagged layer's built-in checks
|
|
PureYAML.Tagged.Dumper excluded tagged-tree emitter; renders a validated Tagged.Node, not a validated subject
|
|
PureYAML.Tagged.ScalarStyle excluded closed enum; illegal states unrepresentable
|
|
PureYAML.Tagged.CollectionStyle excluded closed enum; illegal states unrepresentable
|
|
|
|
# --- validation framework's own types ---
|
|
PureYAML.Validation.Validator excluded validation machinery; not a validated subject
|
|
PureYAML.Validation.ValidationError excluded validation error data-transfer type
|
|
PureYAML.Validation.ValidationErrorCollection excluded error aggregate; data-transfer
|
|
PureYAML.Validation.Result excluded validation result data-transfer type
|
|
PureYAML.Validation.Severity excluded closed enum; illegal states unrepresentable
|
|
PureYAML.Validation.Path excluded coding-path data-transfer type
|
|
PureYAML.Validation.Path.Component excluded coding-path element; closed enum
|
|
PureYAML.Validation.Report excluded diagnostic report data-transfer type
|
|
PureYAML.Validation.ReportError excluded error type; data-transfer
|
|
PureYAML.Validation.SourceReport excluded diagnostic report data-transfer type
|
|
PureYAML.Validation.Source excluded source descriptor data-transfer type
|
|
PureYAML.Validation.BatchReport excluded diagnostic report data-transfer type
|
|
PureYAML.Validation.Diagnostic excluded diagnostic data-transfer type
|
|
PureYAML.Validation.DiagnosticKind excluded closed enum; illegal states unrepresentable
|
|
PureYAML.Validation.PreflightScanner excluded pre-parse scanner engine; not a validated subject
|
|
PureYAML.Validation.Validatable excluded marker protocol constraining check subjects; no instances or state of its own
|
|
PureYAML.Validation.Traversable excluded traversal protocol constraining Validator's walked subjects; no instances or state of its own
|
|
PureYAML.Validation.ValidationContext excluded read-only context passed to a type-directed check; not a subject
|
|
PureYAML.Validation.Validation excluded the type-directed validation value; a rule, not a subject
|
|
PureYAML.Validation.AnyValidation excluded type-erased check; validation dispatch machinery
|
|
PureYAML.Validation.BuiltinValidation excluded caseless namespace of built-in checks
|
|
PureYAML.Streaming.Token.Kind excluded closed enum mirroring libyaml token kinds; illegal states unrepresentable
|
|
PureYAML.Streaming.Token.ScalarStyle excluded closed enum; illegal states unrepresentable
|
|
PureYAML.Streaming excluded caseless namespace; holds no instances or state
|
|
PureYAML.Streaming.Outcome excluded closed result enum; illegal states unrepresentable
|
|
PureYAML.Streaming.Scanner excluded resumable scanning engine; not a validated subject
|
|
PureYAML.Streaming.Token excluded data-transfer scanned token
|
|
PureYAML.Tagged.Timestamp excluded data-transfer calendar components; parse rejects invalid states
|