Bases: ABC
Abstract base class for all code-generatable functions.
Subclasses must provide the header/source code fragments and any codegen constants
needed to emit a complete C++ module via generate_module.
Source code in src/anvil/codegen/common.py
| @dataclass(frozen=True)
class FunctionBase(ABC):
"""Abstract base class for all code-generatable functions.
Subclasses must provide the header/source code fragments and any codegen constants
needed to emit a complete C++ module via `generate_module`.
"""
name: str
@abstractmethod
def __call__(self, *args, **kwargs) -> Any:
pass
def dependencies(self) -> "list[FunctionBase]":
return []
@property
@abstractmethod
def codegen_constants(self) -> set[CodegenIntConstant]: ...
@property
@abstractmethod
def header_includes(self) -> set[str]: ...
@property
@abstractmethod
def header_code(self) -> str: ...
@property
@abstractmethod
def source_includes(self) -> set[str]: ...
@property
@abstractmethod
def source_code(self) -> str: ...
|