Completes issue #11. Tagged.Scalar.timestampValue parses a !!timestamp scalar under the YAML 1.1 grammar into the pure-Swift Tagged.Timestamp (calendar components, timezone offset, secondsSinceEpoch via the days-from-civil closed form; epoch test expectations measured against Python's independent implementation). Tagged.Scalar.binaryValue base64 decodes a !!binary scalar into bytes, accepting unpadded and block scalar wrapped content and rejecting corrupt input whole. Yams hands back Foundation Date/Data; this package is mechanically Foundation-free, so the bridges are caller-owned one-liners: Date(timeIntervalSince1970:) and Data(_:). !!set and !!omap stay skipped since Model.Mapping already preserves order and duplicates. Closes #11
7.0 KiB
7.0 KiB
| 1 | # Public-type validation coverage manifest (validation-rules.md). |
|---|---|
| 2 | # Every public type in the PureYAML target is classified exactly once. |
| 3 | # `validated`: carries a runtime invariant the type system does not enforce; backed by a |
| 4 | # Validation<Subject> in the framework phase. |
| 5 | # `excluded`: a caseless namespace, a closed sum type whose illegal states are unrepresentable, |
| 6 | # a pure data-transfer type, an error value, or engine/machinery that is not a validated subject. |
| 7 | # scripts/check-validation-coverage.sh fails the build if a public type is missing here or a line |
| 8 | # here is no longer public. |
| 9 | # --- namespaces (caseless enums) --- |
| 10 | # --- model --- |
| 11 | # --- stream --- |
| 12 | # --- parsing --- |
| 13 | # --- emitting --- |
| 14 | # --- decoding / encoding (Codable machinery) --- |
| 15 | # --- tagged node subsystem --- |
| 16 | # --- validation framework's own types --- |