Struct DocTranslatorVTable#

Struct Documentation#

struct DocTranslatorVTable#

Engine callbacks borrowed for the translator’s lifetime.

Public Members

TVMFFIAny (*translate)(DocTranslatorObj *translator, ffi::AnyView value, const ffi::Object *destination) noexcept#

Translate a value with an optional pre-mapped destination.

Param translator:

The borrowed translation context.

Param value:

The borrowed input value.

Param destination:

A borrowed Var, or nullptr when no binding is requested.

Return:

An owning Expected<Optional<ExprDoc>> encoded as TVMFFIAny. None means emission completed the request; errors use Expected’s error encoding.

TVMFFIAny (*alloc_id)(DocTranslatorObj *translator, ffi::AnyView hint) noexcept#

Reserve an identifier without mapping a variable.

Param translator:

The borrowed translation context.

Param hint:

The borrowed string name hint.

Return:

An owning Expected<IdDoc> encoded as TVMFFIAny, including errors.

TVMFFIAny (*var_get_or_alloc_id)(DocTranslatorObj *translator, ffi::AnyView var, bool explicit_def) noexcept#

Find or allocate a variable’s identifier.

Param translator:

The borrowed translation context.

Param var:

The borrowed variable.

Param explicit_def:

Whether to remove the binding from pending definitions.

Return:

An owning Expected<IdDoc> encoded as TVMFFIAny, including errors.

TVMFFIAny (*get_implicit_defs)(DocTranslatorObj *translator) noexcept#

Get the current variable scope’s pending definitions.

Param translator:

The borrowed translation context.

Return:

An owning Expected<Dict<Var, IdDoc>> encoded as TVMFFIAny, including errors.

TVMFFIAny (*begin_var_scope)(DocTranslatorObj *translator) noexcept#

Begin a lexical variable scope.

Param translator:

The borrowed translation context.

Return:

Expected<void> encoded as TVMFFIAny, including errors.

TVMFFIAny (*end_var_scope)(DocTranslatorObj *translator) noexcept#

End the current lexical variable scope.

Param translator:

The borrowed translation context.

Return:

Expected<void> encoded as TVMFFIAny, including errors.