pub struct StateId(pub String);Expand description
Runtime-state id: state/<kebab> (stage-5 state section, DSL v0.10,
spec-0031). A named, scoped, integer-valued datum.
Unlike FlagId this one is declared. A datum’s scope (per-player or
party-wide) is a multiplayer semantic that no inference can supply, and a
counter — unlike a monotonic “this happened” flag — has an initial value
that only a declaration can state.
Tuple Fields§
§0: StringImplementations§
Source§impl StateId
impl StateId
Sourcepub fn is_valid_syntax(&self) -> bool
pub fn is_valid_syntax(&self) -> bool
True if the id is well-formed: <prefix>/<kebab>.
Sourcepub fn syntax_form(&self) -> String
pub fn syntax_form(&self) -> String
The form THIS id has to take, for the diagnostic that rejected
one — `npc/<kebab>`, `dlg/<kebab>`, and so on.
A refusal that says only “ids must be lowercase kebab-case with
their type prefix” and then lists three examples of other types
has told the author the general rule and withheld the one fact
they were missing: which prefix THIS field takes. The prefix is
a property of the id type, so the answer is derived from the
type at every site rather than hand-written per site — the
per-section refusals that already name their own prefix
(wave/, trap/, loot/, …) are that fact copied by hand,
which is exactly why the general path never had it.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for StateId
impl<'de> Deserialize<'de> for StateId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for StateId
Source§impl JsonSchema for StateId
impl JsonSchema for StateId
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more