Struct arrow_flight::FlightInfo

source ·
pub struct FlightInfo {
    pub schema: Bytes,
    pub flight_descriptor: Option<FlightDescriptor>,
    pub endpoint: Vec<FlightEndpoint>,
    pub total_records: i64,
    pub total_bytes: i64,
    pub ordered: bool,
    pub app_metadata: Bytes,
}
Expand description

The access coordinates for retrieval of a dataset. With a FlightInfo, a consumer is able to determine how to retrieve a dataset.

Fields§

§schema: Bytes

The schema of the dataset in its IPC form: 4 bytes - an optional IPC_CONTINUATION_TOKEN prefix 4 bytes - the byte length of the payload a flatbuffer Message whose header is the Schema

§flight_descriptor: Option<FlightDescriptor>

The descriptor associated with this info.

§endpoint: Vec<FlightEndpoint>

A list of endpoints associated with the flight. To consume the whole flight, all endpoints (and hence all Tickets) must be consumed. Endpoints can be consumed in any order.

In other words, an application can use multiple endpoints to represent partitioned data.

If the returned data has an ordering, an application can use “FlightInfo.ordered = true” or should return the all data in a single endpoint. Otherwise, there is no ordering defined on endpoints or the data within.

A client can read ordered data by reading data from returned endpoints, in order, from front to back.

Note that a client may ignore “FlightInfo.ordered = true”. If an ordering is important for an application, an application must choose one of them:

  • An application requires that all clients must read data in returned endpoints order.
  • An application must return the all data in a single endpoint.
§total_records: i64

Set these to -1 if unknown.

§total_bytes: i64§ordered: bool

FlightEndpoints are in the same order as the data.

§app_metadata: Bytes

Application-defined metadata.

There is no inherent or required relationship between this and the app_metadata fields in the FlightEndpoints or resulting FlightData messages. Since this metadata is application-defined, a given application could define there to be a relationship, but there is none required by the spec.

Implementations§

source§

impl FlightInfo

source

pub fn new() -> FlightInfo

Create a new, empty FlightInfo, describing where to fetch flight data

§Example:
// Create a new FlightInfo
let flight_info = FlightInfo::new()
  // Encode the Arrow schema
  .try_with_schema(&get_schema())
  .expect("encoding failed")
  .with_endpoint(
     FlightEndpoint::new()
       .with_ticket(Ticket::new("ticket contents")
     )
   )
  .with_descriptor(FlightDescriptor::new_cmd("RUN QUERY"));
source

pub fn try_decode_schema(self) -> Result<Schema, ArrowError>

Try and convert the data in this FlightInfo into a [Schema]

source

pub fn try_with_schema(self, schema: &Schema) -> Result<Self, ArrowError>

Specify the schema for the response.

Note this takes the arrow [Schema] (not the IPC schema) and encodes it using the default IPC options.

Returns an error if schema can not be encoded into IPC form.

source

pub fn with_endpoint(self, endpoint: FlightEndpoint) -> Self

Add specific a endpoint for fetching the data

source

pub fn with_descriptor(self, flight_descriptor: FlightDescriptor) -> Self

Add a FlightDescriptor describing what this data is

source

pub fn with_total_records(self, total_records: i64) -> Self

Set the number of records in the result, if known

source

pub fn with_total_bytes(self, total_bytes: i64) -> Self

Set the number of bytes in the result, if known

source

pub fn with_ordered(self, ordered: bool) -> Self

Specify if the response is ordered across endpoints

source

pub fn with_app_metadata(self, app_metadata: impl Into<Bytes>) -> Self

Add optional application specific metadata to the message

Trait Implementations§

source§

impl Clone for FlightInfo

source§

fn clone(&self) -> FlightInfo

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FlightInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for FlightInfo

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Display for FlightInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Message for FlightInfo

source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
source§

fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message to a buffer. Read more
source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
source§

fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
source§

fn decode<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes an instance of the message from a buffer. Read more
source§

fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes a length-delimited instance of the message from the buffer.
source§

fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
source§

fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
source§

impl PartialEq for FlightInfo

source§

fn eq(&self, other: &FlightInfo) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<FlightInfo> for Schema

§

type Error = ArrowError

The type returned in the event of a conversion error.
source§

fn try_from(value: FlightInfo) -> Result<Self, ArrowError>

Performs the conversion.
source§

impl StructuralPartialEq for FlightInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,