Skip to main content

InstanceBuilder

Struct InstanceBuilder 

Source
pub struct InstanceBuilder<L = ()> { /* private fields */ }
Expand description

Builder that compiles Navi source and produces an executable Instance.

Obtain a builder via Instance::builder.

The generic parameter L tracks the chain of library loaders registered via with_library_loader. Start with InstanceBuilder<()> (the default returned by Instance::builder) and each call to with_library_loader prepends a new loader while preserving the fallback chain in the type.

Implementations§

Source§

impl<L> InstanceBuilder<L>

Source

pub fn with_locale(self, locale: impl Into<String>) -> Self

Sets the locale used for i18n diagnostic messages.

Source

pub fn with_dialect(self, dialect: Dialect) -> Self

Sets the source dialect used to parse the script (Pine or Navi).

Source

pub fn with_input_value(self, id: usize, value: impl Serialize) -> Self

Set the value of an input by its index.

Source

pub fn with_input_sessions(self, sessions: InputSessions) -> Self

Configures which trading sessions are accepted as input.

Source

pub fn with_background_color(self, color: impl Into<Option<Color>>) -> Self

Overrides the chart background color used by visual outputs.

Source

pub fn with_last_info(self, last_info: impl Into<Option<LastInfo>>) -> Self

Provides the last-bar metadata used by some runtime features.

Source

pub fn with_execution_limits(self, limits: ExecutionLimits) -> Self

Configures runtime execution limits for the VM.

Source

pub fn with_output_mode(self, mode: OutputMode) -> Self

Sets the output mode for series graph data.

Source

pub fn with_mtf_wait(self, duration: Duration) -> Self

Sets the fixed delay applied before executing each realtime bar.

Source

pub fn with_strategy_config_override(self, ov: StrategyConfigOverride) -> Self

Overrides strategy execution parameters declared in the script source.

Fields set to Some(…) take precedence over the strategy() call arguments. Fields left as None fall back to the script defaults. Has no effect on non-strategy scripts.

Source§

impl<L: LibraryLoader> InstanceBuilder<L>

Source

pub fn with_library_loader<Q: LibraryLoader>( self, loader: Q, ) -> InstanceBuilder<CombinedLoader<Q, L>>

Prepends a library loader to the resolution chain.

The new loader is tried first; on failure it falls back to whichever loader was registered previously. The built-in prelude/stdlib loader is always appended as the final fallback regardless of how many custom loaders are registered.

Call this method multiple times to build a priority stack:

// Resolution order: loader_b → loader_a → builtins
let instance = Instance::builder(provider, source, timeframe, symbol)
    .with_library_loader(loader_a)
    .with_library_loader(loader_b)
    .build()
    .await?;
Source

pub async fn build(self) -> Result<Instance, Error>

Compiles the source and builds a runnable Instance.

Auto Trait Implementations§

§

impl<L> Freeze for InstanceBuilder<L>
where L: Freeze,

§

impl<L = ()> !RefUnwindSafe for InstanceBuilder<L>

§

impl<L = ()> !Send for InstanceBuilder<L>

§

impl<L = ()> !Sync for InstanceBuilder<L>

§

impl<L> Unpin for InstanceBuilder<L>
where L: Unpin,

§

impl<L> UnsafeUnpin for InstanceBuilder<L>
where L: UnsafeUnpin,

§

impl<L = ()> !UnwindSafe for InstanceBuilder<L>

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V