Struct FFI_ArrowSchema
#[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> 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