Skip to main content

VarWidth

Enum VarWidth 

Source
pub enum VarWidth {
    Numeric,
    String(u16),
}
Expand description

A variable’s width.

This is essentially VarType plus a width for VarType::String.

Variants§

§

Numeric

A numeric variable.

§

String(u16)

A string variable.

Tuple Fields

§0: u16

The width of the string variable.

Must be in 1..=32767, although the type system does not yet enforce this.

Implementations§

Source§

impl VarWidth

Source

pub const MAX_STRING: u16 = 32767

Source

pub const SEGMENT_SIZE: usize = 252

Number of bytes per segment by which the amount of space for very long string variables is allocated.

Source

pub fn n_dict_indexes(self) -> usize

Source

pub fn wider(a: VarWidth, b: VarWidth) -> Option<VarWidth>

Returns the wider of self and other:

  • Numerical variable widths are equally wide.
  • Longer strings are wider than shorter strings.
  • Numerical and string types are incomparable, so result in None.
Source

pub fn narrower(a: VarWidth, b: VarWidth) -> Option<VarWidth>

Returns the narrower of self and other (see Self::wider).

Source

pub fn default_display_width(&self) -> u32

Source

pub fn is_long_string(&self) -> bool

Source

pub fn as_string_width(&self) -> Option<usize>

Source

pub fn is_numeric(&self) -> bool

Source

pub fn is_string(&self) -> bool

Source

pub fn is_very_long_string(&self) -> bool

Returns true if this is a very long string width, meaning wider than 255 bytes, which was the limit for old versions of SPSS.

Source

pub fn segments(&self) -> Segments

Returns an iterator over the “segments” used for writing case data for a variable with this width. A segment is a physical variable in the system file that represents some piece of a logical variable as seen by a PSPP user. Most variables have one segment whose width is their own width, but very long string variables, with width greater than 255, have multiple segments each with width 255 or less.

Source

pub fn n_chunks(&self) -> Option<usize>

Returns the number of 8-byte chunks used for writing case data for a variable with this width. Very long string variables (wider than 255 bytes) cannot directly be divided into chunks: they must first be divided into multiple segments, which can then be divided into chunks.

Source

pub fn segment_alloc_width(&self, segment_idx: usize) -> usize

Returns the width to allocate to the segment with the given segment_idx within this variable. A segment is a physical variable in the system file that represents some piece of a logical variable as seen by a PSPP user.

Source

pub fn display_adjective(&self) -> VarWidthAdjective

Source

pub fn codepage_to_unicode(&mut self)

Trait Implementations§

Source§

impl Clone for VarWidth

Source§

fn clone(&self) -> VarWidth

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 Copy for VarWidth

Source§

impl Debug for VarWidth

Source§

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

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

impl Eq for VarWidth

Source§

impl From<VarWidth> for CaseVar

Source§

fn from(width: VarWidth) -> Self

Converts to this type from the input type.
Source§

impl From<VarWidth> for VarType

Source§

fn from(source: VarWidth) -> Self

Converts to this type from the input type.
Source§

impl Ord for VarWidth

Source§

fn cmp(&self, other: &VarWidth) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl PartialEq for VarWidth

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl PartialOrd for VarWidth

Source§

fn partial_cmp(&self, other: &VarWidth) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for VarWidth

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 VarWidth

Source§

impl TryFrom<RawWidth> for VarWidth

Source§

type Error = ()

The type returned in the event of a conversion error.
Source§

fn try_from(value: RawWidth) -> Result<Self, Self::Error>

Performs the conversion.

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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<D> IdType for D
where D: Eq + Ord + Copy,

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

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

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, !>

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.