Split the six files that declared multiple sibling types under one namespace extension so each file declares exactly one top-level type: the Tagged node component types (Node, NodeKind, Scalar, Sequence, Mapping, Pair), the validation report types (Report, Source, SourceReport, BatchReport), DiagnosticKind, TokenKind, ScannerFlowContext kind, and the event-stream composer helpers. Public type names are unchanged; the shared report-rendering helpers move from file-private to internal so the split report types still reach them. Make check-namespacing.sh namespace-aware: the previous column-anchored scan was blind to types declared inside indented extension blocks, so it passed while the rule was violated. It now counts direct members of a PureYAML namespace extension and ignores nested types and private helpers.
31 lines
759 B
Swift
31 lines
759 B
Swift
public extension PureYAML.Tagged {
|
|
/// YAML node tree that preserves explicit source tags.
|
|
enum Node: Equatable, Sendable {
|
|
case scalar(Scalar)
|
|
case sequence(Sequence)
|
|
case mapping(Mapping)
|
|
|
|
public var tag: Tag? {
|
|
switch self {
|
|
case let .mapping(mapping):
|
|
mapping.tag
|
|
case let .scalar(scalar):
|
|
scalar.tag
|
|
case let .sequence(sequence):
|
|
sequence.tag
|
|
}
|
|
}
|
|
|
|
public var kind: NodeKind {
|
|
switch self {
|
|
case .mapping:
|
|
.mapping
|
|
case .scalar:
|
|
.scalar
|
|
case .sequence:
|
|
.sequence
|
|
}
|
|
}
|
|
}
|
|
}
|