Segment-first paths for the Dust Elixir SDK.
A path is an ordered, non-empty list of non-empty string segments:
["posts", "hello.world", "image/file"]Public SDK functions accept either a segment list or a canonical
rendered slash string (see from_input/1). Internally the SDK uses
segment lists; strings are rendered at boundaries (cache keys, wire
protocol, log lines).
This module mirrors DustProtocol.Path from the canonical wire-
protocol package; the SDK keeps its own copy so it can be Hex-
publishable without taking a dep on the protocol package.
Rendering
Canonical rendered paths join segments with / and escape per RFC
6901 (JSON Pointer) inside each segment:
`~` -> `~0`
`/` -> `~1`No other character has any special meaning. In particular, . is
literal — "example.com" is one segment, not two.
Migration note
This module replaces the legacy dot-as-separator API that shipped
in earlier capability versions. Dust.Protocol.Path.LegacyDot is
available as a transitional helper for code that still consumes
dotted-string paths from old data; it is deleted at the end of the
migration.
Summary
Functions
Accept either a rendered slash string or a segment list, return
validated segments. SDK entry points use this so callers can write
Dust.put(store, "a/b/c", val) or Dust.put(store, ["a","b","c"], val)
interchangeably.
Types
Functions
Accept either a rendered slash string or a segment list, return
validated segments. SDK entry points use this so callers can write
Dust.put(store, "a/b/c", val) or Dust.put(store, ["a","b","c"], val)
interchangeably.