pub struct RibRepl { /* private fields */ }Expand description
The REPL environment for Rib, providing an interactive shell for executing Rib code.
Implementations§
Source§impl RibRepl
impl RibRepl
Sourcepub async fn bootstrap(
history_file: Option<PathBuf>,
dependency_manager: Arc<dyn RibDependencyManager + Sync + Send>,
worker_function_invoke: Arc<dyn WorkerFunctionInvoke + Sync + Send>,
printer: Option<Box<dyn ReplPrinter>>,
component_source: Option<ComponentSource>,
) -> Result<RibRepl, ReplBootstrapError>
pub async fn bootstrap( history_file: Option<PathBuf>, dependency_manager: Arc<dyn RibDependencyManager + Sync + Send>, worker_function_invoke: Arc<dyn WorkerFunctionInvoke + Sync + Send>, printer: Option<Box<dyn ReplPrinter>>, component_source: Option<ComponentSource>, ) -> Result<RibRepl, ReplBootstrapError>
Bootstraps and initializes the Rib REPL environment and returns a RibRepl instance,
which can be used to run the REPL.
§Arguments
history_file: Optional path to a file where the REPL history will be stored and loaded from. IfNone, it will be loaded from~/.rib_history.dependency_manager: This is responsible for how to load all the components or a specific custom component.worker_function_invoke: An implementation of theWorkerFunctionInvoketrait,printer: Optional custom printer for displaying results and errors in the REPL. IfNonea default printer will be used.component_source: Optional details about the component to be loaded, including its name and source file path. IfNone, the REPL will try to load all the components using thedependency_manager, otherwise,dependency_managerwill load only the specified component.
Sourcepub fn read_line(&mut self) -> Result<String>
pub fn read_line(&mut self) -> Result<String>
Reads a single line of input from the REPL prompt.
This method is exposed for users who want to manage their own REPL loop
instead of using the built-in Self::run method.
Sourcepub async fn execute_rib(
&mut self,
rib: &str,
) -> Result<Option<RibResult>, RibError>
pub async fn execute_rib( &mut self, rib: &str, ) -> Result<Option<RibResult>, RibError>
Executes a single line of Rib code and returns the result.
This function is exposed for users who want to implement custom REPL loops
or integrate Rib execution into other workflows.
For a built-in REPL loop, see Self::run.
Sourcepub fn update_component_dependency(&mut self, dependency: RibComponentMetadata)
pub fn update_component_dependency(&mut self, dependency: RibComponentMetadata)
Dynamically updates the REPL session with a new component dependency.
This method is intended for use in interactive or user-controlled REPL loops, allowing runtime replacement of active component metadata.
Note: Currently, only a single component is supported per session. Multi-component support is planned but not yet implemented.
Sourcepub async fn run(&mut self)
pub async fn run(&mut self)
Starts the default REPL loop for executing Rib code interactively.
This is a convenience method that repeatedly reads user input and executes
it using Self::execute_rib. If you need more control over the REPL behavior,
use Self::read_line and Self::execute_rib directly.
Auto Trait Implementations§
impl Freeze for RibRepl
impl !RefUnwindSafe for RibRepl
impl !Send for RibRepl
impl !Sync for RibRepl
impl Unpin for RibRepl
impl !UnwindSafe for RibRepl
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request