View Source Kinda.CodeGen.DeclarationSurfaces (kinda v0.11.0)

The resolved declaration surfaces of a generator module.

from_generator/2 loads a generator module's declaration source (a module implementing declaration_manifest/0 and optionally kinds/0) and resolves it into the source declaration manifest and the final declaration manifest, normalizing NIF declarations and merging the NIFs implied by resource kinds.

Summary

Types

source_declaration_manifest()

@type source_declaration_manifest() :: Kinda.CodeGen.DeclarationManifest.t() | nil

t()

@type t() :: %Kinda.CodeGen.DeclarationSurfaces{
  declaration_manifest: Kinda.CodeGen.DeclarationManifest.t(),
  source_declaration_manifest: source_declaration_manifest()
}

Functions

declaration_manifest(surfaces)

@spec declaration_manifest(t()) :: Kinda.CodeGen.DeclarationManifest.t()

from_generator(mod, root_module)

@spec from_generator(module(), module()) :: t()

from_parts(source_declaration_manifest, declaration_manifest)

load_source(mod)

@spec load_source(module()) :: source_declaration_manifest()

nif_decls(surfaces)

@spec nif_decls(t()) :: [Kinda.CodeGen.NIFDecl.t()]

signature_manifest(surfaces)

@spec signature_manifest(t()) :: map() | nil

source_declaration_manifest(surfaces)

@spec source_declaration_manifest(t()) :: source_declaration_manifest()

type_decls(surfaces)

@spec type_decls(t()) :: [Kinda.CodeGen.TypeDecl.t()]