kw pub
Зарезервированное слово
Список слов: §1.4
Синтаксис
Vis = "pub" [ "(" "api" ")" ] ;Грамматика: Прил. A
Определяется в
- 4.2 data — Поле: видимость?
- 4.4 enum — Вариант: без полей, с позиционными или с именованными полями.
- 2.3 Видимость — Модификатор применяется к объявлениям и к полям data.
- 4.5 impl и методы — Внутри метода доступны self и Self.
- 4.6 Интерфейсы — Интерфейсы структурные
- 6.2 Эффекты — Набор эффектов пишется после возвращаемого типа через запятую
- 10.1 Сервисы — service объявляет контракт
- 16.3 gRPC и protobuf — import proto "payments.proto" генерирует extern service и типы; вызовы — как к обычным сервисам через connect.
Примеры
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
pub(api) enum Role { User, Support, Admin }
pub(api) enum Shape {
Circle(r: f64)
Rect(w: f64, h: f64)
Empty
}
@error enum PayError { Declined(reason: str), Fraud, Limit(max: Money) }
@open pub(api) enum Status { New = 1, Paid = 2, Shipped = 3 }— 4.4 enum
Связанные диагностики
unknown-field, private-in-public, visibility, impl-foreign-type, unknown-method, explicit-interface, interface-not-satisfied, effects, duplicate-impl, impl-signature-mismatch, missing-impl, missing-rpc-impl, unknown-rpc, import-skip