CompilerConfig

Struct CompilerConfig 

Source
pub struct CompilerConfig {
    pub external_builtins: Vec<ExternalBuiltin>,
    pub library_paths: Vec<String>,
    pub libraries: Vec<String>,
    pub ffi_manifest_paths: Vec<PathBuf>,
    pub pure_inline_test: bool,
}
Expand description

Configuration for the Seq compiler

Allows external projects to extend the compiler with additional builtins and configuration options.

Fields§

§external_builtins: Vec<ExternalBuiltin>

External builtins to include in compilation

§library_paths: Vec<String>

Additional library paths for linking

§libraries: Vec<String>

Additional libraries to link

§ffi_manifest_paths: Vec<PathBuf>

External FFI manifest paths to load

These manifests are loaded in addition to any include ffi:* statements in the source code. Use this to provide custom FFI bindings without embedding them in the compiler.

§pure_inline_test: bool

Pure inline test mode: bypass scheduler, return top of stack as exit code. Only supports inline operations (integers, arithmetic, stack ops). Used for testing and benchmarking pure computation without FFI overhead.

Implementations§

Source§

impl CompilerConfig

Source

pub fn new() -> Self

Create a new empty configuration

Source

pub fn with_builtin(self, builtin: ExternalBuiltin) -> Self

Add an external builtin (builder pattern)

Source

pub fn with_builtins( self, builtins: impl IntoIterator<Item = ExternalBuiltin>, ) -> Self

Add multiple external builtins

Source

pub fn with_library_path(self, path: impl Into<String>) -> Self

Add a library path for linking

Source

pub fn with_library(self, lib: impl Into<String>) -> Self

Add a library to link

Source

pub fn with_ffi_manifest(self, path: impl Into<PathBuf>) -> Self

Add an external FFI manifest path

The manifest will be loaded and its functions made available during compilation, in addition to any include ffi:* statements.

Source

pub fn with_ffi_manifests( self, paths: impl IntoIterator<Item = PathBuf>, ) -> Self

Add multiple external FFI manifest paths

Source

pub fn external_names(&self) -> Vec<&str>

Get seq names of all external builtins (for AST validation)

Trait Implementations§

Source§

impl Clone for CompilerConfig

Source§

fn clone(&self) -> CompilerConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CompilerConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for CompilerConfig

Source§

fn default() -> CompilerConfig

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.