Source code for ifgen.plugins

"""
An interface for optional code generation plugins.
"""

# internal
from ifgen.enums import Language
from ifgen.generation.interface import GenerateTask
from ifgen.plugins.struct_receiver import (
    cpp_struct_receiver,
    python_struct_receiver,
)

PLUGINS = {
    "struct_receiver": {
        Language.PYTHON: python_struct_receiver,
        Language.CPP: cpp_struct_receiver,
    }
}


[docs] def internal_plugin_entry(task: GenerateTask) -> None: """A generator for a struct receiver interface.""" if task.name in PLUGINS and task.language in PLUGINS[task.name]: PLUGINS[task.name][task.language](task)