Skip to main content

RESERVED_ID_CHARS

Constant RESERVED_ID_CHARS 

Source
pub const RESERVED_ID_CHARS: [char; 1];
Expand description

Bytes an identifier may not contain, and where each is load-bearing.

| joins a link’s entity key in transaction_log. Structural, not cosmetic — a collision produces a wrong answer with no error.

/ was reserved here through 0.5.6 and is free again as of 0.6.0 (T0.1, D-076). It existed for exactly one reason: the traversal CTE carried a path column of visited ids, delimited by /, and D-061 reserved the character so the cycle check could match a whole element rather than a substring once ids became variable-length. T0.1 deleted the path column — the walk dedupes on entry instead — so nothing in the crate delimits with / any more, and continuing to refuse it would be a constraint kept for a mechanism that no longer exists.

Relaxing is safe in the direction that matters: ids previously refused are now accepted, so no stored id becomes invalid and no migration is implied. Adding a character back later would not be safe, which is why this list is worth keeping short.