Skip to main content

FieldDefinition

Struct FieldDefinition 

Source
pub struct FieldDefinition {
    pub format: TableColumnFormat,
    pub offset: usize,
    pub name: String,
    pub scale: Option<f64>,
    pub zero: Option<f64>,
    pub null: Option<i64>,
    pub dimensions: Vec<usize>,
}
Expand description

Everything the header says about one binary table column.

A column is more than its TFORMn type: TSCALn and TZEROn describe a linear transform from the stored entry to the physical value it stands for, and TNULLn names the stored entry that means “undefined”. decode applies all three, so callers see physical values rather than raw ones.

Fields§

§format: TableColumnFormat

TFORMn: this column’s type and repeat count.

§offset: usize

Byte offset of this column from the start of a row.

§name: String

TTYPEn, or an empty string for a column that carries no name.

§scale: Option<f64>

TSCALn: the multiplier applied to a stored entry.

§zero: Option<f64>

TZEROn: the offset added after scaling.

§null: Option<i64>

TNULLn: the stored entry that marks an undefined value.

§dimensions: Vec<usize>

TDIMn: the shape this column’s entry has, fastest-varying axis first.

Empty for a column with no TDIMn card, which is a plain run of TableColumnFormat::len elements. Value holds the elements flat either way; this says how to fold them.

Implementations§

Source§

impl FieldDefinition

Source

pub fn all_from_header( header: &Header, ) -> Result<Vec<Self>, Box<dyn Error + Send + Sync>>

Reads every column of header in order, resolving each one’s offset from the widths of the columns before it.

Source

pub fn decode(&self, row: &[u8], heap: &[u8]) -> Result<Value>

Decodes this column out of row, which must be a whole row of the table.

heap is the table’s heap, which only a variable length array column reads from; pass an empty slice for a table that has none.

Trait Implementations§

Source§

impl Clone for FieldDefinition

Source§

fn clone(&self) -> FieldDefinition

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 FieldDefinition

Source§

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

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

impl PartialEq for FieldDefinition

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for FieldDefinition

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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 = !

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.