Skip to main content

State

Enum State 

Source
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

Source

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.
Source

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.

Source

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 the Connection and sets the state to Running.

Trait Implementations§

Source§

impl Debug for State

Source§

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

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

impl Default for State

Source§

fn default() -> Self

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

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> 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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
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> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
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