oaspec/codegen/ir
Types
A top-level declaration with optional doc comment.
pub type Declaration {
Declaration(doc: option.Option(String), type_def: TypeDef)
}
Constructors
-
Declaration(doc: option.Option(String), type_def: TypeDef)
A named, typed field in a record constructor.
pub type Field {
Field(name: String, type_expr: String)
}
Constructors
-
Field(name: String, type_expr: String)
A complete generated Gleam source file.
pub type Module {
Module(
header: String,
imports: List(String),
declarations: List(Declaration),
)
}
Constructors
-
Module( header: String, imports: List(String), declarations: List(Declaration), )
The shapes of type definition that the OpenAPI generator produces.
pub type TypeDef {
TypeAlias(name: String, target: String)
RecordType(name: String, fields: List(Field))
UnionType(name: String, variants: List(Variant))
EnumType(name: String, variants: List(String))
}
Constructors
-
TypeAlias(name: String, target: String)pub type Foo = Bar -
RecordType(name: String, fields: List(Field))pub type Foo { Foo(field1: Type1, field2: Type2) } -
UnionType(name: String, variants: List(Variant))pub type Foo { FooBar(Bar) FooBaz(Baz) } -
EnumType(name: String, variants: List(String))pub type Status { StatusActive StatusInactive }
A variant in a union type.
pub type Variant {
VariantWithType(name: String, inner_type: String)
VariantEmpty(name: String)
}
Constructors
-
VariantWithType(name: String, inner_type: String)Variant with a wrapped type:
FooBar(Bar) -
VariantEmpty(name: String)Variant with no payload:
FooNone