View Source Kinda.CodeGen.DeclarationManifest (kinda v0.11.0)
A versioned declaration manifest for generated NIFs and types.
A manifest bundles generated NIF declarations (Kinda.CodeGen.NIFDecl) and
type declarations (Kinda.CodeGen.TypeDecl), optionally keeping the source
signature manifest they were derived from. Manifests are the canonical
machine-readable contract between Kinda's codegen pipeline and downstream
consumers, and can be serialized to and from maps as well as loaded from
.ex or .json files via load!/1.
Summary
Types
@type t() :: %Kinda.CodeGen.DeclarationManifest{ nif_decls: [Kinda.CodeGen.NIFDecl.t()], signature_manifest: map() | nil, signature_manifest_version: pos_integer() | nil, type_decls: [Kinda.CodeGen.TypeDecl.t()], version: pos_integer() }
Functions
@spec build([Kinda.CodeGen.NIFDecl.t()], map() | nil) :: t()
@spec from_parts( [Kinda.CodeGen.NIFDecl.t()], [Kinda.CodeGen.TypeDecl.t()], map() | nil ) :: t()
@spec merge_nif_decls(t(), [Kinda.CodeGen.NIFDecl.t()]) :: t()
@spec nif_decls(t()) :: [Kinda.CodeGen.NIFDecl.t()]
@spec put_nif_decls(t(), [Kinda.CodeGen.NIFDecl.t()]) :: t()
@spec put_type_decls(t(), [Kinda.CodeGen.TypeDecl.t()]) :: t()
@spec signature_manifest_version(t()) :: pos_integer() | nil
@spec type_decls(t()) :: [Kinda.CodeGen.TypeDecl.t()]