Skip to main content

FlightMetrics

Struct FlightMetrics 

Source
pub struct FlightMetrics { /* private fields */ }
Expand description

Watches a flight and keeps its peaks, and its stability from the rail exit to apogee or the first deployment.

Each step is sampled at its start, middle and end. When the parabola through the three has its top inside the step, a golden-section search on the dense output finds the peak there; the largest of what it finds and the three samples is kept. The least margins are found the same way, with the parabola turned over. Thrust-curve knots and events end steps, so a thrust spike’s peak is a step’s end. Nothing is kept on the pad.

A watcher keeps one flight: FlightMetrics::clear it before watching another, and FlightMetrics::summary refuses a flight whose steps it didn’t all see, once each. Like crate::Recorder, it serializes what it holds for inspection and is built with FlightMetrics::new, not deserialized.

Implementations§

Source§

impl FlightMetrics

Source

pub fn new() -> Self

A watcher with nothing seen.

Source

pub fn clear(&mut self)

Forgets what it saw, ready for another flight.

Source

pub fn stability(&self) -> &[Stability]

The stability from the rail exit (or the start of a flight begun in the air) to apogee or the first deployment, whichever comes first: at the rail exit and at every step’s end, in time order. A powered separation adds the sustainer’s own entry at the split, after the stack’s and at the same time, so the watcher needs the flight’s events as well as its steps.

Source

pub fn summary( &self, result: &FlightResult, environment: &Environment, ) -> Result<FlightSummary, SimError>

The summary of result, the flight this watched, flown in environment.

§Errors

SimError::Domain if it didn’t see each of result’s accepted steps once, or its last step ended after result did (it watched another flight, or wasn’t cleared between two); SimError::Core if a landing has no geodetic coordinates.

Trait Implementations§

Source§

impl Clone for FlightMetrics

Source§

fn clone(&self) -> FlightMetrics

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for FlightMetrics

Source§

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

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

impl Default for FlightMetrics

Source§

fn default() -> FlightMetrics

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

impl Observer for FlightMetrics

Source§

fn step(&mut self, step: &dyn FlightStep) -> Result<(), SimError>

Sees every accepted integration step, in order. Read more
Source§

fn event(&mut self, event: &FlightEvent)

Sees every flight event as it is recorded.
Source§

impl PartialEq for FlightMetrics

Source§

fn eq(&self, other: &FlightMetrics) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for FlightMetrics

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

impl StructuralPartialEq for FlightMetrics

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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.