#[repr(C)]pub struct FFI_ArrowSchema {
format: *const i8,
name: *const i8,
metadata: *const i8,
flags: i64,
n_children: i64,
children: *mut *mut FFI_ArrowSchema,
dictionary: *mut FFI_ArrowSchema,
release: Option<unsafe extern "C" fn(_: *mut FFI_ArrowSchema)>,
private_data: *mut c_void,
}
Expand description
ABI-compatible struct for ArrowSchema
from C Data Interface
See https://arrow.apache.org/docs/format/CDataInterface.html#structure-definitions
fn array_schema(data_type: &DataType) -> FFI_ArrowSchema {
FFI_ArrowSchema::try_from(data_type).unwrap()
}
Fields§
§format: *const i8
§name: *const i8
§metadata: *const i8
§flags: i64
§n_children: i64
§children: *mut *mut FFI_ArrowSchema
§dictionary: *mut FFI_ArrowSchema
§release: Option<unsafe extern "C" fn(_: *mut FFI_ArrowSchema)>
§private_data: *mut c_void
Implementations§
§impl FFI_ArrowSchema
impl FFI_ArrowSchema
pub fn try_new(
format: &str,
children: Vec<FFI_ArrowSchema>,
dictionary: Option<FFI_ArrowSchema>,
) -> Result<FFI_ArrowSchema, ArrowError>
pub fn try_new( format: &str, children: Vec<FFI_ArrowSchema>, dictionary: Option<FFI_ArrowSchema>, ) -> Result<FFI_ArrowSchema, ArrowError>
create a new FFI_ArrowSchema
. This fails if the fields’
DataType
is not supported.
pub fn with_name(self, name: &str) -> Result<FFI_ArrowSchema, ArrowError>
pub fn with_name(self, name: &str) -> Result<FFI_ArrowSchema, ArrowError>
Set the name of the schema
pub fn with_flags(self, flags: Flags) -> Result<FFI_ArrowSchema, ArrowError>
pub fn with_flags(self, flags: Flags) -> Result<FFI_ArrowSchema, ArrowError>
Set the flags of the schema
pub fn with_metadata<I, S>(
self,
metadata: I,
) -> Result<FFI_ArrowSchema, ArrowError>
pub fn with_metadata<I, S>( self, metadata: I, ) -> Result<FFI_ArrowSchema, ArrowError>
Add metadata to the schema
pub unsafe fn from_raw(schema: *mut FFI_ArrowSchema) -> FFI_ArrowSchema
pub unsafe fn from_raw(schema: *mut FFI_ArrowSchema) -> FFI_ArrowSchema
Takes ownership of the pointed to FFI_ArrowSchema
This acts to move the data out of schema
, setting the release callback to NULL
§Safety
schema
must be valid for reads and writesschema
must be properly alignedschema
must point to a properly initialized value ofFFI_ArrowSchema
pub fn empty() -> FFI_ArrowSchema
pub fn empty() -> FFI_ArrowSchema
Create an empty FFI_ArrowSchema
pub fn child(&self, index: usize) -> &FFI_ArrowSchema
pub fn child(&self, index: usize) -> &FFI_ArrowSchema
Returns the child of this schema at index
.
§Panics
Panics if index
is greater than or equal to the number of children.
This is to make sure that the unsafe acces to raw pointer is sound.
pub fn children(&self) -> impl Iterator<Item = &FFI_ArrowSchema>
pub fn children(&self) -> impl Iterator<Item = &FFI_ArrowSchema>
Returns an iterator to the schema’s children.
pub fn nullable(&self) -> bool
pub fn nullable(&self) -> bool
Returns if the field is semantically nullable, regardless of whether it actually has null values.
pub fn dictionary(&self) -> Option<&FFI_ArrowSchema>
pub fn dictionary(&self) -> Option<&FFI_ArrowSchema>
Returns the reference to the underlying dictionary of the schema. Check ArrowSchema.dictionary.
This must be Some
if the schema represents a dictionary-encoded type, None
otherwise.
pub fn map_keys_sorted(&self) -> bool
pub fn map_keys_sorted(&self) -> bool
For map types, returns whether the keys within each map value are sorted.
Refer to Arrow Flags
pub fn dictionary_ordered(&self) -> bool
pub fn dictionary_ordered(&self) -> bool
For dictionary-encoded types, returns whether the ordering of dictionary indices is semantically meaningful.
Trait Implementations§
§impl Debug for FFI_ArrowSchema
impl Debug for FFI_ArrowSchema
§impl TryFrom<&Arc<Field>> for FFI_ArrowSchema
impl TryFrom<&Arc<Field>> for FFI_ArrowSchema
§type Error = ArrowError
type Error = ArrowError
§impl TryFrom<&DataType> for FFI_ArrowSchema
impl TryFrom<&DataType> for FFI_ArrowSchema
§fn try_from(dtype: &DataType) -> Result<FFI_ArrowSchema, ArrowError>
fn try_from(dtype: &DataType) -> Result<FFI_ArrowSchema, ArrowError>
§type Error = ArrowError
type Error = ArrowError
§impl TryFrom<&FFI_ArrowSchema> for DataType
impl TryFrom<&FFI_ArrowSchema> for DataType
§fn try_from(c_schema: &FFI_ArrowSchema) -> Result<DataType, ArrowError>
fn try_from(c_schema: &FFI_ArrowSchema) -> Result<DataType, ArrowError>
§type Error = ArrowError
type Error = ArrowError
§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<&FFI_ArrowSchema> for Schema
impl TryFrom<&FFI_ArrowSchema> for Schema
§type Error = ArrowError
type Error = ArrowError
§fn try_from(c_schema: &FFI_ArrowSchema) -> Result<Schema, ArrowError>
fn try_from(c_schema: &FFI_ArrowSchema) -> Result<Schema, 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<&Schema> for FFI_ArrowSchema
impl TryFrom<&Schema> for FFI_ArrowSchema
§type Error = ArrowError
type Error = ArrowError
§fn try_from(schema: &Schema) -> Result<FFI_ArrowSchema, ArrowError>
fn try_from(schema: &Schema) -> Result<FFI_ArrowSchema, ArrowError>
§impl TryFrom<DataType> for FFI_ArrowSchema
impl TryFrom<DataType> for FFI_ArrowSchema
§type Error = ArrowError
type Error = ArrowError
§fn try_from(dtype: DataType) -> Result<FFI_ArrowSchema, ArrowError>
fn try_from(dtype: DataType) -> 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 TryFrom<Schema> for FFI_ArrowSchema
impl TryFrom<Schema> for FFI_ArrowSchema
§type Error = ArrowError
type Error = ArrowError
§fn try_from(schema: Schema) -> Result<FFI_ArrowSchema, ArrowError>
fn try_from(schema: Schema) -> Result<FFI_ArrowSchema, ArrowError>
impl Send for FFI_ArrowSchema
Auto Trait Implementations§
impl Freeze for FFI_ArrowSchema
impl RefUnwindSafe for FFI_ArrowSchema
impl !Sync for FFI_ArrowSchema
impl Unpin for FFI_ArrowSchema
impl UnwindSafe for FFI_ArrowSchema
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> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.