oas/generator/schema
This module builds ASTs from schemas. It does not do any file generation
Values
pub fn custom_type(
name: String,
properties: List(#(String, #(lift.Schema(Int), Bool))),
additional: option.Option(lift.Schema(Int)),
required: List(String),
module: misc.Module,
) -> glance.CustomType
Generate a custom type from an object type. TODO make private
pub fn fields_to_encode_body(
properties: List(#(String, #(lift.Schema(Int), Bool))),
required: List(String),
additional: option.Option(lift.Schema(Int)),
module: misc.Module,
) -> glance.Expression
pub fn gen_top_decoder_needs_name(
name: String,
top: lift.Schema(lift.Fields),
module: misc.Module,
) -> List(glance.Statement)
pub fn generate(
schemas: dict.Dict(String, oas.Schema),
) -> #(
List(glance.CustomType),
List(glance.TypeAlias),
List(glance.Function),
)
From a dictionary of schemas generate all custom types, type aliases, encoders and decoders.
pub fn to_decode_fn(
entry: #(String, lift.Schema(lift.Fields)),
module: misc.Module,
) -> glance.Function
pub fn to_decoder(
lifted: lift.Schema(Int),
module: misc.Module,
) -> glance.Expression
pub fn to_encode_fn(
entry: #(String, lift.Schema(lift.Fields)),
module: misc.Module,
) -> glance.Function
This handles top to encoder TODO make this private
pub fn to_encoder(
lifted: lift.Schema(Int),
module: misc.Module,
) -> glance.Expression
This handles a lifted encoder