[][src]Struct ichen_openprotocol::StateValues

pub struct StateValues<'a> {
    pub op_mode: OpMode,
    pub job_mode: JobMode,
    pub operator_id: Option<ID>,
    pub job_card_id: Option<Cow<'a, str>>,
    pub mold_id: Option<Cow<'a, str>>,
}

A data structure containing a snapshot of the current known states of the controller.

Fields

op_mode: OpMode

Current operating mold of the controller.

job_mode: JobMode

Current job mode of the controller.

operator_id: Option<ID>

Unique ID of the current logged-in user (if any) on the controller.

job_card_id: Option<Cow<'a, str>>

Current active job ID (if any) on the controller.

mold_id: Option<Cow<'a, str>>

Unique ID of the set of mold data currently loaded (if any) on the controller.

Methods

impl<'a> StateValues<'a>[src]

pub fn new(op: OpMode, job: JobMode) -> Self[src]

Create a new StateValues wth no operator ID, job card ID and mold ID.

Examples

let state = StateValues::new(OpMode::Automatic, JobMode::ID02);
assert_eq!(OpMode::Automatic, state.op_mode);
assert_eq!(JobMode::ID02, state.job_mode);
assert_eq!(None, state.operator_id);
assert_eq!(None, state.job_card_id);
assert_eq!(None, state.mold_id);

pub fn new_with_all(
    op: OpMode,
    job: JobMode,
    operator: Option<u32>,
    job_card: Option<&'a str>,
    mold: Option<&'a str>
) -> Self
[src]

Create a new StateValues with all fields set.

Panics

Panics if operator is Some(0).

// The following will panic because of `Some(0)` in `operator`
let state = StateValues::new_with_all(OpMode::Automatic, JobMode::ID02, Some(0), None, Some("M001"));

Examples

let state = StateValues::new_with_all(OpMode::Automatic, JobMode::ID02, Some(123), None, Some("M001"));
assert_eq!(OpMode::Automatic, state.op_mode);
assert_eq!(JobMode::ID02, state.job_mode);
assert_eq!(Some(ID::from_u32(123)), state.operator_id);
assert_eq!(None, state.job_card_id);
assert_eq!(r#"Some("M001")"#, format!("{:?}", state.mold_id));

pub fn validate(&self) -> Result<'static, ()>[src]

Validate the data structure.

Errors

Returns Err(OpenProtocolError::EmptyField) if job_card_id or mold_id is set to an empty string or is all whitespace.

Examples

let state = StateValues::new_with_all(OpMode::Automatic, JobMode::ID02, Some(123), Some(""), None);
assert_eq!(r#"Err(EmptyField("job_card_id"))"#, format!("{:?}", state.validate()));

Trait Implementations

impl<'_> Default for StateValues<'_>[src]

fn default() -> Self[src]

Default value of StateValues.

impl<'a> PartialEq<StateValues<'a>> for StateValues<'a>[src]

impl<'a> Debug for StateValues<'a>[src]

impl<'a> Serialize for StateValues<'a>[src]

impl<'de: 'a, 'a> Deserialize<'de> for StateValues<'a>[src]

Auto Trait Implementations

impl<'a> Sync for StateValues<'a>

impl<'a> Send for StateValues<'a>

impl<'a> Unpin for StateValues<'a>

impl<'a> RefUnwindSafe for StateValues<'a>

impl<'a> UnwindSafe for StateValues<'a>

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]