Struct Field
pub struct Field {
name: String,
data_type: DataType,
nullable: bool,
dict_id: i64,
dict_is_ordered: bool,
metadata: HashMap<String, String>,
}
Expand description
Fields§
§name: String
§data_type: DataType
§nullable: bool
§dict_id: i64
§dict_is_ordered: bool
§metadata: HashMap<String, String>
Implementations§
§impl Field
impl Field
pub fn new(
name: impl Into<String>,
data_type: DataType,
nullable: bool,
) -> Field
pub fn new( name: impl Into<String>, data_type: DataType, nullable: bool, ) -> Field
Creates a new field with the given name, type, and nullability
pub fn new_list_field(data_type: DataType, nullable: bool) -> Field
pub fn new_list_field(data_type: DataType, nullable: bool) -> Field
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)
);
pub fn new_dict(
name: impl Into<String>,
data_type: DataType,
nullable: bool,
dict_id: i64,
dict_is_ordered: bool,
) -> Field
pub fn new_dict( name: impl Into<String>, data_type: DataType, nullable: bool, dict_id: i64, dict_is_ordered: bool, ) -> Field
Creates a new field that has additional dictionary information
pub fn new_dictionary(
name: impl Into<String>,
key: DataType,
value: DataType,
nullable: bool,
) -> Field
pub fn new_dictionary( name: impl Into<String>, key: DataType, value: DataType, nullable: bool, ) -> Field
Create a new Field
with DataType::Dictionary
Use Self::new_dict
for more advanced dictionary options
§Panics
Panics if !key.is_dictionary_key_type
pub fn new_struct(
name: impl Into<String>,
fields: impl Into<Fields>,
nullable: bool,
) -> Field
pub fn new_struct( name: impl Into<String>, fields: impl Into<Fields>, nullable: bool, ) -> Field
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
pub fn new_list(
name: impl Into<String>,
value: impl Into<Arc<Field>>,
nullable: bool,
) -> Field
pub fn new_list( name: impl Into<String>, value: impl Into<Arc<Field>>, nullable: bool, ) -> Field
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
pub fn new_large_list(
name: impl Into<String>,
value: impl Into<Arc<Field>>,
nullable: bool,
) -> Field
pub fn new_large_list( name: impl Into<String>, value: impl Into<Arc<Field>>, nullable: bool, ) -> Field
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
pub fn new_fixed_size_list(
name: impl Into<String>,
value: impl Into<Arc<Field>>,
size: i32,
nullable: bool,
) -> Field
pub fn new_fixed_size_list( name: impl Into<String>, value: impl Into<Arc<Field>>, size: i32, nullable: bool, ) -> Field
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
pub fn new_map(
name: impl Into<String>,
entries: impl Into<String>,
keys: impl Into<Arc<Field>>,
values: impl Into<Arc<Field>>,
sorted: bool,
nullable: bool,
) -> Field
pub fn new_map( name: impl Into<String>, entries: impl Into<String>, keys: impl Into<Arc<Field>>, values: impl Into<Arc<Field>>, sorted: bool, nullable: bool, ) -> Field
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
pub fn new_union<S, F, T>(
name: S,
type_ids: T,
fields: F,
mode: UnionMode,
) -> Fieldwhere
S: Into<String>,
F: IntoIterator,
<F as IntoIterator>::Item: Into<Arc<Field>>,
T: IntoIterator<Item = i8>,
pub fn new_union<S, F, T>(
name: S,
type_ids: T,
fields: F,
mode: UnionMode,
) -> Fieldwhere
S: Into<String>,
F: IntoIterator,
<F as IntoIterator>::Item: Into<Arc<Field>>,
T: IntoIterator<Item = i8>,
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
pub 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.
pub fn with_metadata(self, metadata: HashMap<String, String>) -> Field
pub fn with_metadata(self, metadata: HashMap<String, String>) -> Field
Sets the metadata of this Field
to be metadata
and returns self
pub 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.
pub fn with_name(self, name: impl Into<String>) -> Field
pub fn with_name(self, name: impl Into<String>) -> Field
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");
pub fn with_data_type(self, data_type: DataType) -> Field
pub fn with_data_type(self, data_type: DataType) -> Field
pub const fn is_nullable(&self) -> bool
pub const fn is_nullable(&self) -> bool
Indicates whether this Field
supports null values.
pub fn with_nullable(self, nullable: bool) -> Field
pub fn with_nullable(self, nullable: bool) -> Field
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);
pub 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.
pub 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§
§impl<'de> Deserialize<'de> for Field
impl<'de> Deserialize<'de> for Field
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Field, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Field, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Extend<Field> for SchemaBuilder
impl Extend<Field> for SchemaBuilder
§fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = Field>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = Field>,
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
)§impl FromIterator<Field> for Fields
impl FromIterator<Field> for Fields
source§impl FromPyArrow for Field
impl FromPyArrow for Field
source§fn from_pyarrow_bound(value: &Bound<'_, PyAny>) -> PyResult<Self>
fn from_pyarrow_bound(value: &Bound<'_, PyAny>) -> PyResult<Self>
§impl Ord for Field
impl Ord for Field
§impl PartialOrd for Field
impl PartialOrd for Field
§impl Serialize for Field
impl Serialize for Field
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
source§impl ToPyArrow for Field
impl ToPyArrow for Field
source§fn to_pyarrow(&self, py: Python<'_>) -> PyResult<PyObject>
fn to_pyarrow(&self, py: Python<'_>) -> PyResult<PyObject>
§impl TryFrom<&FFI_ArrowSchema> for Field
impl TryFrom<&FFI_ArrowSchema> for Field
§type Error = ArrowError
type Error = ArrowError
§fn try_from(c_schema: &FFI_ArrowSchema) -> Result<Field, ArrowError>
fn try_from(c_schema: &FFI_ArrowSchema) -> Result<Field, ArrowError>
§impl TryFrom<&Field> for FFI_ArrowSchema
impl TryFrom<&Field> for FFI_ArrowSchema
§type Error = ArrowError
type Error = ArrowError
§fn try_from(field: &Field) -> Result<FFI_ArrowSchema, ArrowError>
fn try_from(field: &Field) -> Result<FFI_ArrowSchema, ArrowError>
§impl TryFrom<Field> for FFI_ArrowSchema
impl TryFrom<Field> for FFI_ArrowSchema
§type Error = ArrowError
type Error = ArrowError
§fn try_from(field: Field) -> Result<FFI_ArrowSchema, ArrowError>
fn try_from(field: Field) -> Result<FFI_ArrowSchema, ArrowError>
impl Eq for Field
Auto Trait Implementations§
impl Freeze for Field
impl RefUnwindSafe for Field
impl Send for Field
impl Sync for Field
impl Unpin for Field
impl UnwindSafe for Field
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.