pub struct Field { /* private fields */ }
Expand description
Implementations§
Source§impl Field
impl Field
Sourcepub const LIST_FIELD_DEFAULT_NAME: &'static str = "item"
pub const LIST_FIELD_DEFAULT_NAME: &'static str = "item"
Default list member field name
Sourcepub fn new(name: impl Into<String>, data_type: DataType, nullable: bool) -> Self
pub fn new(name: impl Into<String>, data_type: DataType, nullable: bool) -> Self
Creates a new field with the given name, type, and nullability
Sourcepub fn new_list_field(data_type: DataType, nullable: bool) -> Self
pub fn new_list_field(data_type: DataType, nullable: bool) -> Self
Creates a new Field
suitable for DataType::List
and
DataType::LargeList
While not required, this method follows the convention of naming the
Field
"item"
.
§Example
assert_eq!(
Field::new("item", DataType::Int32, true),
Field::new_list_field(DataType::Int32, true)
);
Sourcepub fn new_dict(
name: impl Into<String>,
data_type: DataType,
nullable: bool,
dict_id: i64,
dict_is_ordered: bool,
) -> Self
👎Deprecated since 54.0.0: The ability to preserve dictionary IDs will be removed. With the dict_id field disappearing this function signature will change by removing the dict_id parameter.
pub fn new_dict( name: impl Into<String>, data_type: DataType, nullable: bool, dict_id: i64, dict_is_ordered: bool, ) -> Self
Creates a new field that has additional dictionary information
Sourcepub fn new_dictionary(
name: impl Into<String>,
key: DataType,
value: DataType,
nullable: bool,
) -> Self
pub fn new_dictionary( name: impl Into<String>, key: DataType, value: DataType, nullable: bool, ) -> Self
Create a new Field
with DataType::Dictionary
Use Self::new_dict
for more advanced dictionary options
§Panics
Panics if !key.is_dictionary_key_type
Sourcepub fn new_struct(
name: impl Into<String>,
fields: impl Into<Fields>,
nullable: bool,
) -> Self
pub fn new_struct( name: impl Into<String>, fields: impl Into<Fields>, nullable: bool, ) -> Self
Create a new Field
with DataType::Struct
name
: the name of theDataType::Struct
fieldfields
: the description of each struct elementnullable
: if theDataType::Struct
array is nullable
Sourcepub fn new_list(
name: impl Into<String>,
value: impl Into<FieldRef>,
nullable: bool,
) -> Self
pub fn new_list( name: impl Into<String>, value: impl Into<FieldRef>, nullable: bool, ) -> Self
Create a new Field
with DataType::List
name
: the name of theDataType::List
fieldvalue
: the description of each list elementnullable
: if theDataType::List
array is nullable
Sourcepub fn new_large_list(
name: impl Into<String>,
value: impl Into<FieldRef>,
nullable: bool,
) -> Self
pub fn new_large_list( name: impl Into<String>, value: impl Into<FieldRef>, nullable: bool, ) -> Self
Create a new Field
with DataType::LargeList
name
: the name of theDataType::LargeList
fieldvalue
: the description of each list elementnullable
: if theDataType::LargeList
array is nullable
Sourcepub fn new_fixed_size_list(
name: impl Into<String>,
value: impl Into<FieldRef>,
size: i32,
nullable: bool,
) -> Self
pub fn new_fixed_size_list( name: impl Into<String>, value: impl Into<FieldRef>, size: i32, nullable: bool, ) -> Self
Create a new Field
with DataType::FixedSizeList
name
: the name of theDataType::FixedSizeList
fieldvalue
: the description of each list elementsize
: the size of the fixed size listnullable
: if theDataType::FixedSizeList
array is nullable
Sourcepub fn new_map(
name: impl Into<String>,
entries: impl Into<String>,
keys: impl Into<FieldRef>,
values: impl Into<FieldRef>,
sorted: bool,
nullable: bool,
) -> Self
pub fn new_map( name: impl Into<String>, entries: impl Into<String>, keys: impl Into<FieldRef>, values: impl Into<FieldRef>, sorted: bool, nullable: bool, ) -> Self
Create a new Field
with DataType::Map
name
: the name of theDataType::Map
fieldentries
: the name of the innerDataType::Struct
fieldkeys
: the map keysvalues
: the map valuessorted
: if theDataType::Map
array is sortednullable
: if theDataType::Map
array is nullable
Sourcepub fn new_union<S, F, T>(
name: S,
type_ids: T,
fields: F,
mode: UnionMode,
) -> Self
pub fn new_union<S, F, T>( name: S, type_ids: T, fields: F, mode: UnionMode, ) -> Self
Create a new Field
with DataType::Union
name
: the name of theDataType::Union
fieldtype_ids
: the union type idsfields
: the union fieldsmode
: the union mode
Sourcepub fn set_metadata(&mut self, metadata: HashMap<String, String>)
pub fn set_metadata(&mut self, metadata: HashMap<String, String>)
Sets the Field
’s optional custom metadata.
Sourcepub fn with_metadata(self, metadata: HashMap<String, String>) -> Self
pub fn with_metadata(self, metadata: HashMap<String, String>) -> Self
Sets the metadata of this Field
to be metadata
and returns self
Sourcepub const fn metadata(&self) -> &HashMap<String, String>
pub const fn metadata(&self) -> &HashMap<String, String>
Returns the immutable reference to the Field
’s optional custom metadata.
Sourcepub fn with_name(self, name: impl Into<String>) -> Self
pub fn with_name(self, name: impl Into<String>) -> Self
Set the name of the Field
and returns self.
let field = Field::new("c1", DataType::Int64, false)
.with_name("c2");
assert_eq!(field.name(), "c2");
Sourcepub fn with_data_type(self, data_type: DataType) -> Self
pub fn with_data_type(self, data_type: DataType) -> Self
Sourcepub const fn is_nullable(&self) -> bool
pub const fn is_nullable(&self) -> bool
Indicates whether this Field
supports null values.
Sourcepub fn with_nullable(self, nullable: bool) -> Self
pub fn with_nullable(self, nullable: bool) -> Self
Set nullable
of the Field
and returns self.
let field = Field::new("c1", DataType::Int64, false)
.with_nullable(true);
assert_eq!(field.is_nullable(), true);
Sourcepub const fn dict_id(&self) -> Option<i64>
👎Deprecated since 54.0.0: The ability to preserve dictionary IDs will be removed. With it, all fields related to it.
pub const fn dict_id(&self) -> Option<i64>
Returns the dictionary ID, if this is a dictionary type.
Sourcepub const fn dict_is_ordered(&self) -> Option<bool>
pub const fn dict_is_ordered(&self) -> Option<bool>
Returns whether this Field
’s dictionary is ordered, if this is a dictionary type.
§Example
// non dictionaries do not have a dict is ordered flat
let field = Field::new("c1", DataType::Int64, false);
assert_eq!(field.dict_is_ordered(), None);
// by default dictionary is not ordered
let field = Field::new("c1", DataType::Dictionary(Box::new(DataType::Int64), Box::new(DataType::Utf8)), false);
assert_eq!(field.dict_is_ordered(), Some(false));
let field = field.with_dict_is_ordered(true);
assert_eq!(field.dict_is_ordered(), Some(true));
Sourcepub fn with_dict_is_ordered(self, dict_is_ordered: bool) -> Self
pub fn with_dict_is_ordered(self, dict_is_ordered: bool) -> Self
Set the is ordered field for this Field
, if it is a dictionary.
Does nothing if this is not a dictionary type.
See Field::dict_is_ordered
for more information.
Sourcepub fn try_merge(&mut self, from: &Field) -> Result<(), ArrowError>
pub fn try_merge(&mut self, from: &Field) -> Result<(), ArrowError>
Merge this field into self if it is compatible.
Struct fields are merged recursively.
NOTE: self
may be updated to a partial / unexpected state in case of merge failure.
Example:
let mut field = Field::new("c1", DataType::Int64, false);
assert!(field.try_merge(&Field::new("c1", DataType::Int64, true)).is_ok());
assert!(field.is_nullable());
Trait Implementations§
Source§impl Extend<Field> for SchemaBuilder
impl Extend<Field> for SchemaBuilder
Source§fn extend<T: IntoIterator<Item = Field>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = Field>>(&mut self, iter: T)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)