Skip to content

buffer

Modules:

Functions:

build_buffer_runtime_feature

build_buffer_runtime_feature() -> RuntimeFeature
Source code in src/irx/builder/runtime/buffer/feature.py
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
@typechecked
def build_buffer_runtime_feature() -> RuntimeFeature:
    """
    title: Build the buffer runtime feature specification.
    returns:
      type: RuntimeFeature
    """
    runtime_root = Path(__file__).resolve().parent
    native_root = runtime_root / "native"
    return RuntimeFeature(
        name="buffer",
        symbols={
            "irx_buffer_owner_external_new": ExternalSymbolSpec(
                "irx_buffer_owner_external_new",
                _declare_owner_external_new,
            ),
            "irx_buffer_owner_retain": ExternalSymbolSpec(
                "irx_buffer_owner_retain",
                _declare_owner_retain,
            ),
            "irx_buffer_owner_release": ExternalSymbolSpec(
                "irx_buffer_owner_release",
                _declare_owner_release,
            ),
            "irx_buffer_view_retain": ExternalSymbolSpec(
                "irx_buffer_view_retain",
                _declare_view_retain,
            ),
            "irx_buffer_view_release": ExternalSymbolSpec(
                "irx_buffer_view_release",
                _declare_view_release,
            ),
            "irx_buffer_last_error": ExternalSymbolSpec(
                "irx_buffer_last_error",
                _declare_last_error,
            ),
        },
        artifacts=(
            NativeArtifact(
                kind="c_source",
                path=native_root / "irx_buffer_runtime.c",
                include_dirs=(native_root,),
                compile_flags=("-std=c99",),
            ),
        ),
        metadata={
            "opaque_handles": {"owner": "irx_buffer_owner_handle"},
            "view_type": "irx_buffer_view",
        },
    )