Skip to main content

icydb_model/base/types/
ident.rs

1//! Module: base::types::ident
2//!
3//! Responsibility: base domain type declarations.
4//! Does not own: runtime storage, query execution, or validator implementation internals.
5//! Boundary: declares macro-modeled domain wrappers and records for downstream schemas.
6
7use crate::prelude::*;
8
9///
10/// Constant
11///
12
13#[newtype(
14    source_key = "crates/icydb/src/base/types/ident.rs::newtype::1",
15    primitive = "Text",
16    item(prim = "Text", unbounded),
17    ty(
18        rule(
19            source_key = "icydb.base.rule.ident.constant.length.v1",
20            kind = "length_range_inclusive",
21            args(1, 40)
22        ),
23        validator(path = "base::validator::text::case::UpperSnake"),
24    )
25)]
26pub struct Constant {}
27
28///
29/// Field
30///
31
32#[newtype(
33    source_key = "crates/icydb/src/base/types/ident.rs::newtype::2",
34    primitive = "Text",
35    item(prim = "Text", unbounded),
36    ty(
37        rule(
38            source_key = "icydb.base.rule.ident.field.length.v1",
39            kind = "length_range_inclusive",
40            args(2, 40)
41        ),
42        validator(path = "base::validator::text::case::Snake"),
43    )
44)]
45pub struct Field {}
46
47///
48/// Function
49///
50/// 30 characters, snake_case
51///
52
53#[newtype(
54    source_key = "crates/icydb/src/base/types/ident.rs::newtype::3",
55    primitive = "Text",
56    item(prim = "Text", unbounded),
57    ty(
58        rule(
59            source_key = "icydb.base.rule.ident.function.length.v1",
60            kind = "length_range_inclusive",
61            args(2, 64)
62        ),
63        validator(path = "base::validator::text::case::Snake"),
64    )
65)]
66pub struct Function {}
67
68///
69/// Variable
70///
71
72#[newtype(
73    source_key = "crates/icydb/src/base/types/ident.rs::newtype::4",
74    primitive = "Text",
75    item(prim = "Text", unbounded),
76    ty(
77        rule(
78            source_key = "icydb.base.rule.ident.variable.length.v1",
79            kind = "length_range_inclusive",
80            args(2, 40)
81        ),
82        validator(path = "base::validator::text::case::Snake"),
83    )
84)]
85pub struct Variable {}
86
87///
88/// Variant
89///
90
91#[newtype(
92    source_key = "crates/icydb/src/base/types/ident.rs::newtype::5",
93    primitive = "Text",
94    item(prim = "Text", unbounded),
95    ty(
96        rule(
97            source_key = "icydb.base.rule.ident.variant.length.v1",
98            kind = "length_range_inclusive",
99            args(1, 40)
100        ),
101        validator(path = "base::validator::text::case::UpperCamel"),
102    )
103)]
104pub struct Variant {}