Pristine.Runtime.Schema (Pristine v0.4.0)

Copy Markdown View Source

Internal schema resolution and materialization helpers for runtime execution.

Summary

Types

openapi_field()

@type openapi_field() :: %{
  :default => term(),
  optional(:description) => String.t() | nil,
  optional(:deprecated) => boolean(),
  optional(:example) => term(),
  optional(:examples) => term(),
  optional(:external_docs) => map() | nil,
  optional(:extensions) => map(),
  :name => String.t(),
  :nullable => boolean(),
  optional(:read_only) => boolean(),
  :required => boolean(),
  :type => term(),
  optional(:write_only) => boolean()
}

Functions

build_schema(fields)

@spec build_schema([openapi_field()]) :: Sinter.Schema.t()

decode_module_type(module, type, data)

@spec decode_module_type(module(), atom(), term()) :: {:ok, term()} | {:error, term()}

materialize(ref, data, type_schemas)

@spec materialize(term(), term(), map()) :: term()

resolve_schema(schema, type_schemas)

@spec resolve_schema(term(), map()) :: term() | nil