Source code for ifgen.enum
"""
A module implementing interfaces for enum-file generation.
"""
# internal
from ifgen import PKG_NAME
from ifgen.enum.header import enum_header
from ifgen.enum.source import create_enum_source
from ifgen.enum.test import create_enum_test
from ifgen.generation.interface import GenerateTask
__all__ = ["create_enum", "create_enum_source", "create_enum_test"]
[docs]
def create_enum(task: GenerateTask) -> None:
"""Create a header file based on an enum definition."""
includes = []
if task.is_cpp:
includes.append("<cstdint>")
if not task.instance["use_map"]:
includes.append("<cstring>")
includes.append(f'"../{PKG_NAME}/common.h"')
with task.boilerplate(
includes=includes, json=task.instance["json"], parent_depth=2
) as writer:
enum_header(task, writer)