No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
Schema helpers for D-core.
This module is intentionally small:
temporal) that make the expected
date/time domain and wire dialect an explicit, declarative per-field choice
(roadmap 02, B6).Schema helpers for D-core. This module is intentionally small: - Applies strictness (:strict/:lax) to Malli map schemas (:closed true/false) - Validates values and throws typed, non-retriable exceptions for poison handling - Provides temporal schema constructors (`temporal`) that make the expected date/time domain *and* wire dialect an explicit, declarative per-field choice (roadmap 02, B6).
No vars found in this namespace.
No vars found in this namespace.
The temporal contract (roadmap 02, B1).
Two vocabularies, deliberately separate:
Domains are the internal representation. Everything internal is UTC:
a point in time is a java.time.Instant, a span is a java.time.Duration,
and :local-date is a civil date that is deliberately not a point in time.
Zone-bearing and wall-clock types (:local-date-time, :zoned-date-time,
:offset-date-time) are ingress formats only — they are resolved to an
Instant at the boundary and never travel internally (D10).
Dialects are the encodings used at a boundary. A dialect is a named
value, chosen explicitly, never inferred (D6). :epoch-ms is the platform
default (D3b) and is narrow: it can only carry :instant, at millisecond
resolution.
Nothing here guesses. A number without a dialect is an error, a zone-less datetime is an error (D11), and a value a dialect cannot represent is an error rather than a silent narrowing (D5).
The temporal contract (roadmap 02, B1). Two vocabularies, deliberately separate: - **Domains** are the *internal* representation. Everything internal is UTC: a point in time is a `java.time.Instant`, a span is a `java.time.Duration`, and `:local-date` is a civil date that is deliberately *not* a point in time. Zone-bearing and wall-clock types (`:local-date-time`, `:zoned-date-time`, `:offset-date-time`) are **ingress formats only** — they are resolved to an `Instant` at the boundary and never travel internally (D10). - **Dialects** are the *encodings* used at a boundary. A dialect is a named value, chosen explicitly, never inferred (D6). `:epoch-ms` is the platform default (D3b) and is narrow: it can only carry `:instant`, at millisecond resolution. Nothing here guesses. A number without a dialect is an error, a zone-less datetime is an error (D11), and a value a dialect cannot represent is an error rather than a silent narrowing (D5).
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |