Skip to main content

ProcessContext

Struct ProcessContext 

Source
pub struct ProcessContext {
    pub recipe_step_id: String,
    pub recipe_step: RecipeStep,
    pub tool_state: ToolState,
    pub lot_id: Option<String>,
    pub chamber_id: Option<String>,
}
Expand description

Full operational context for a single process run, passed to the DSFB engine so that admissibility gating is recipe-step-aware.

§Example

use dsfb_semiconductor::process_context::{ProcessContext, RecipeStep, ToolState};

let ctx = ProcessContext {
    recipe_step_id: "STEP_002_MAIN_ETCH".into(),
    recipe_step: RecipeStep::MainEtch,
    tool_state: ToolState::Production,
    lot_id: Some("LOT-2026-0401".into()),
    chamber_id: Some("CH-A".into()),
};

// Main-etch tightens the envelope by 20 %.
assert!((ctx.admissibility_multiplier() - 0.80).abs() < 1e-9);

Fields§

§recipe_step_id: String

Fab-internal identifier string for the active recipe step.

§recipe_step: RecipeStep

Canonical DSFB classification of the recipe step.

§tool_state: ToolState

Observable tool-level state.

§lot_id: Option<String>

Wafer lot / batch identifier (informational; included in traceability).

§chamber_id: Option<String>

Chamber identifier (informational; included in traceability).

Implementations§

Source§

impl ProcessContext

Source

pub fn admissibility_multiplier(&self) -> f64

Admissibility envelope multiplier for this context.

The LUT below encodes industry-standard domain knowledge:

Recipe stepMultiplierRationale
GasStabilize1.50 ×Ramp transients are physically expected
MainEtch0.80 ×Yield-critical; tightest control window
Deposition1.10 ×Moderate tolerance
OverEtch1.20 ×Controlled endpoint; slightly relaxed
Seasoning2.00 ×Post-clean transients expected
Other1.00 ×Baseline

During a ChamberClean tool state, deviations are fully suppressed (f64::INFINITY — no finite residual can exceed an infinite envelope).

Source

pub fn requires_warm_reset(&self) -> bool

Returns true when the grammar engine must issue a Warm Reset.

A Warm Reset clears accumulated grammar state to prevent false alarms after a chamber clean or during a seasoning cycle.

Source

pub fn traceability_tag(&self) -> String

A terse string representation for traceability manifests.

Trait Implementations§

Source§

impl Clone for ProcessContext

Source§

fn clone(&self) -> ProcessContext

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProcessContext

Source§

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

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

impl Default for ProcessContext

Source§

fn default() -> ProcessContext

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

impl<'de> Deserialize<'de> for ProcessContext

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ProcessContext

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,