mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 16:15:11 +03:00
b286adaae4
# Important Notes The command to run the gui dev environment has been changed. Invoking the old command will print a message about that. From now on, use `pnpm dev:gui2` in repository root.
36 lines
971 B
TypeScript
36 lines
971 B
TypeScript
export type Schema = {
|
|
types: Types
|
|
serialization: Serialization
|
|
}
|
|
export type TypeId = string
|
|
export type Types = {
|
|
[id: TypeId]: Type
|
|
}
|
|
export type Type = {
|
|
name: string
|
|
fields: Fields
|
|
parent?: string
|
|
}
|
|
export type Fields = {
|
|
[name: string]: TypeRef
|
|
}
|
|
export type TypeRef = Class | Primitive | Sequence | Option | Result
|
|
export type Class = { class: 'type'; id: TypeId }
|
|
export type Primitive = { class: 'primitive'; type: PrimitiveType }
|
|
export type Sequence = { class: 'sequence'; type: TypeRef }
|
|
export type Option = { class: 'option'; type: TypeRef }
|
|
export type Result = { class: 'result'; type0: TypeRef; type1: TypeRef }
|
|
export type PrimitiveType = 'bool' | 'u32' | 'u64' | 'i32' | 'i64' | 'char' | 'string'
|
|
|
|
export type Serialization = {
|
|
[id: TypeId]: Layout
|
|
}
|
|
export type Layout = {
|
|
discriminants?: DiscriminantMap
|
|
fields: [name: string, offset: number][]
|
|
size: number
|
|
}
|
|
export type DiscriminantMap = {
|
|
[discriminant: number]: TypeId
|
|
}
|