kw data
Зарезервированное слово
Список слов: §1.4
Синтаксис
Data = "data" Ident [ Generics ] [ Where ] "{" { Member } "}" ;Грамматика: Прил. A
Определяется в
- 4.2 data — Поле: видимость?
- 4.8 Дженерики — Параметры: типовые T, константные const N
- 9.5 Пользовательские сериализаторы — Уровень 1 — представление через другой тип (Repr), действует во всех форматах и в схемах
- 4.3 Конструирование и конструкторы — Литерал. T{ f1: e1, f2, ..base }
- 4.7 Встраивание и переопределение — Наследования реализации нет.
- 6.5 Ошибки — Исключений нет. Ошибка — значение типа, помеченного @error, возвращаемое через объединение.
- 9.2 Номера полей и схема — Каждое поле data и каждый вариант enum имеет стабильный тег (номер в wire-формате).
- 9.3 Wire-формат OxL — Бинарный формат OxL — кодирование protobuf 3 со следующими отображениями
Примеры
pub(api) data User {
pub(api) id: UserId
pub(api) name: Name
pub(api) email: Email? @since(2)
role: Role = Role.User
createdAt: Time = now()
invariant name != "admin" || role == Role.Admin
}— 4.2 data
fn max<T>(a: T, b: T) -> T where T: Ord => if a > b { a } else { b }
data Page<T> where T: Serializable { items: List<T>; next: Cursor? }
data Matrix<const R: usize, const C: usize> { cells: [f64; R * C] }
fn pack<T>(x: T) -> bytes where T: Serializable, size_of(T) <= 4KiB
data Cache<K: Hash + Eq, V = bytes> { … }Связанные диагностики
unknown-field, bound-not-satisfied, generic-args, schema-attr, bad-init, missing-field, must-close, positional-literal, sealed-literal, ambiguous-embed, missing-override, override-without-open, fail-type, question-context