Skip to main content

SyncTui

Struct SyncTui 

Source
pub struct SyncTui { /* private fields */ }
Expand description

Terminal user interface for synchronization operations.

SyncTui provides a visual interface for monitoring price data synchronization, including sync status, price ticks, and price history state. It must be coupled with a SyncEngine before synchronization begins.

Implementations§

Source§

impl SyncTui

Source

pub async fn launch( config: TuiConfig, log_file_path: Option<&str>, ) -> Result<Arc<Self>, TuiError>

Launches a new sync TUI with the specified configuration.

Optionally writes TUI logs to a file if log_file_path is provided.

Source

pub fn status(&self) -> TuiStatus

Returns the current TuiStatus as a snapshot.

Source

pub fn couple(&self, engine: SyncEngine) -> Result<(), TuiError>

Couples a SyncEngine to this TUI instance.

This method starts the sync engine and begins listening for sync updates. It can only be called once per TUI instance.

Returns an error if a sync engine has already been coupled.

Source

pub async fn shutdown(&self) -> Result<(), TuiError>

Performs a graceful shutdown of the sync TUI.

This method shuts down the coupled sync engine and stops the UI task. If shutdown does not complete within the configured timeout, the task is aborted.

Returns an error if the TUI is not running or if shutdown fails.

Source

pub async fn until_stopped(&self) -> Arc<TuiStatusStopped>

Waits until the TUI has stopped and returns the final stopped status.

This method blocks until the TUI reaches a stopped state, either through graceful shutdown or a crash.

The terminal is automatically restored before this method returns.

Source

pub async fn log(&self, text: String) -> Result<(), TuiError>

Logs a message to the TUI.

Returns an error if the TUI is not running or if sending the log entry fails.

Source

pub fn as_logger(self: &Arc<Self>) -> Arc<dyn TuiLogger>

Returns this TUI as a TuiLogger trait object.

This is useful for passing the TUI to components that accept a generic logger.

Trait Implementations§

Source§

impl Drop for SyncTui

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl TuiLogger for SyncTui

Source§

fn log<'life0, 'async_trait>( &'life0 self, log_entry: String, ) -> Pin<Box<dyn Future<Output = Result<(), TuiError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sends a log entry to the TUI for display. 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more