Unifex v0.3.0 Unifex.CodeGenerator.Utils View Source

Utilities for code generation.

Link to this section Summary

Functions

Traverses Elixir specification AST and creates C data types serialization with serializers.

Sigil used for templating generated code.

Link to this section Functions

Link to this function

generate_functions(config, generator)

View Source

Specs

generate_functions(
  config :: Enumerable.t(),
  generator :: (term() -> Unifex.CodeGenerator.code_t())
) :: Unifex.CodeGenerator.code_t()
Link to this function

generate_functions_declarations(config, generator)

View Source

Specs

generate_functions_declarations(
  config :: Enumerable.t(),
  generator :: (term() -> Unifex.CodeGenerator.code_t())
) :: Unifex.CodeGenerator.code_t()
Link to this function

generate_serialization(ast, serializers)

View Source

Specs

generate_serialization(
  ast :: Macro.t(),
  serializers :: %{
    arg_serializer:
      (type :: Unifex.CodeGenerator.BaseType.t(), name :: atom() -> output),
    tuple_serializer: ([output] -> output)
  }
) ::
  {output,
   [
     label: atom(),
     arg: {name :: atom(), type :: Unifex.CodeGenerator.BaseType.t()}
   ]}
when output: term()

Traverses Elixir specification AST and creates C data types serialization with serializers.

Specs

sigil_g(String.t(), []) :: String.t()

Sigil used for templating generated code.