pub enum State {
Prompting((Options, bool)),
Connecting(Option<JoinHandle<Result<Connection, (Options, Error)>>>),
Connected(Connection),
Running,
}Expand description
The current state of an attempted connection.
Variants§
Prompting((Options, bool))
The user is being prompted for connection settings. (connection options, whether to try connecting)
Connecting(Option<JoinHandle<Result<Connection, (Options, Error)>>>)
A connection is being attempted.
When modal is called, if the thread is finished the result dictates the following state.
Connected(Connection)
A connection has sucessfully been made.
Running
The connection has been made, and removed so is presumably being run by the application.
Implementations§
Source§impl State
impl State
Sourcepub fn new(cli_args: &ArgMatches) -> Self
pub fn new(cli_args: &ArgMatches) -> Self
Create a new ConnctionOptions from a clap::ArgMatches.
Assumes cli_args contains a single serial, a single network, or neither.
If anything is passd on the cli attempts to make the connection, which may
result in a None variant with the error field set.
§Return
- Prompting(
ConnectionOptions,bool) with the options, and whether to try connecting. - Connected(
Connection) with a connection.
§Panics
- If a contained serial option can’t be converted into a port and optional baud.
Sourcepub fn modal(
&mut self,
modal: &Modal,
tokio_handle: &Handle,
cancel: Option<&mut bool>,
extra_content: impl FnOnce(&mut Ui),
) -> bool
pub fn modal( &mut self, modal: &Modal, tokio_handle: &Handle, cancel: Option<&mut bool>, extra_content: impl FnOnce(&mut Ui), ) -> bool
Populate the modal to prompt the user for connection (and other settings) settings, and change state is relevant.
Returns true if the state is running, allowing this method to be used as a guard to populating the rest of the application.
§Panics
If a thread to create the connection can’t be started.
Sourcepub fn try_get_connection(&mut self) -> Option<Connection>
pub fn try_get_connection(&mut self) -> Option<Connection>
Try getting the created connection.
§Returns
- None if the current state isn’t
Connected. - Some if the current state is
Connected, also removes theConnectionand sets the state toRunning.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for State
impl !Sync for State
impl !UnwindSafe for State
impl Freeze for State
impl Send for State
impl Unpin for State
impl UnsafeUnpin for State
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.