pub struct StructFields(/* private fields */);Expand description
Contains a list of names and corresponding dtypes
Implementations§
Source§impl StructFields
impl StructFields
Sourcepub fn new(names: FieldNames, dtypes: Vec<DType>) -> Self
pub fn new(names: FieldNames, dtypes: Vec<DType>) -> Self
Create a new StructFields from a list of names and dtypes
Sourcepub fn from_fields(names: FieldNames, dtypes: Vec<FieldDType>) -> Self
pub fn from_fields(names: FieldNames, dtypes: Vec<FieldDType>) -> Self
Create a new StructFields from a list of names and FieldDType which can be either lazily or eagerly serialized.
Sourcepub fn names(&self) -> &FieldNames
pub fn names(&self) -> &FieldNames
Get the names of the fields in the struct
Sourcepub fn field_name(&self, index: usize) -> Option<&FieldName>
pub fn field_name(&self, index: usize) -> Option<&FieldName>
Returns the name of the field at the given index
Sourcepub fn find(&self, name: impl AsRef<str>) -> Option<usize>
pub fn find(&self, name: impl AsRef<str>) -> Option<usize>
Find the index of a field by name
Returns None if the field is not found
Sourcepub fn fields(&self) -> impl ExactSizeIterator<Item = DType> + '_
pub fn fields(&self) -> impl ExactSizeIterator<Item = DType> + '_
Returns an ordered iterator over the members of Self.
Sourcepub fn project(&self, projection: &[FieldName]) -> VortexResult<Self>
pub fn project(&self, projection: &[FieldName]) -> VortexResult<Self>
Project a subset of fields from the struct Returns an error if any of the referenced fields are not found
Sourcepub fn without_field(&self, index: usize) -> Self
pub fn without_field(&self, index: usize) -> Self
Returns a new StructFields without the field at the given index.
§Panics
Panics if the index is out of bounds for the struct fields.
Sourcepub fn disjoint_merge(&self, other: &Self) -> VortexResult<Self>
pub fn disjoint_merge(&self, other: &Self) -> VortexResult<Self>
Merge two StructFields instances into a new one.
Order of fields in arguments is preserved
§Errors
Returns an error if the merged struct would have duplicate field names.
Trait Implementations§
Source§impl Clone for StructFields
impl Clone for StructFields
Source§fn clone(&self) -> StructFields
fn clone(&self) -> StructFields
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StructFields
impl Debug for StructFields
Source§impl Default for StructFields
impl Default for StructFields
Source§impl FromArrowType<&Fields> for StructFields
impl FromArrowType<&Fields> for StructFields
Source§fn from_arrow(value: &Fields) -> Self
fn from_arrow(value: &Fields) -> Self
Source§impl<T, V> FromIterator<(T, V)> for StructFields
impl<T, V> FromIterator<(T, V)> for StructFields
Source§impl Hash for StructFields
impl Hash for StructFields
Source§impl PartialEq for StructFields
impl PartialEq for StructFields
impl Eq for StructFields
impl StructuralPartialEq for StructFields
Auto Trait Implementations§
impl Freeze for StructFields
impl RefUnwindSafe for StructFields
impl Send for StructFields
impl Sync for StructFields
impl Unpin for StructFields
impl UnwindSafe for StructFields
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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