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
impl FlightInfo
Sourcepub fn new() -> FlightInfo
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"));
Sourcepub fn try_decode_schema(self) -> Result<Schema, ArrowError>
pub fn try_decode_schema(self) -> Result<Schema, ArrowError>
Try and convert the data in this FlightInfo
into a [Schema
]
Sourcepub fn try_with_schema(self, schema: &Schema) -> Result<Self, ArrowError>
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.
Sourcepub fn with_endpoint(self, endpoint: FlightEndpoint) -> Self
pub fn with_endpoint(self, endpoint: FlightEndpoint) -> Self
Add specific a endpoint for fetching the data
Sourcepub fn with_descriptor(self, flight_descriptor: FlightDescriptor) -> Self
pub fn with_descriptor(self, flight_descriptor: FlightDescriptor) -> Self
Add a FlightDescriptor
describing what this data is
Sourcepub fn with_total_records(self, total_records: i64) -> Self
pub fn with_total_records(self, total_records: i64) -> Self
Set the number of records in the result, if known
Sourcepub fn with_total_bytes(self, total_bytes: i64) -> Self
pub fn with_total_bytes(self, total_bytes: i64) -> Self
Set the number of bytes in the result, if known
Sourcepub fn with_ordered(self, ordered: bool) -> Self
pub fn with_ordered(self, ordered: bool) -> Self
Specify if the response is ordered across endpoints
Sourcepub fn with_app_metadata(self, app_metadata: impl Into<Bytes>) -> Self
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
impl Clone for FlightInfo
Source§fn clone(&self) -> FlightInfo
fn clone(&self) -> FlightInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FlightInfo
impl Debug for FlightInfo
Source§impl Default for FlightInfo
impl Default for FlightInfo
Source§impl Display for FlightInfo
impl Display for FlightInfo
Source§impl Message for FlightInfo
impl Message for FlightInfo
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl PartialEq for FlightInfo
impl PartialEq for FlightInfo
Source§impl TryFrom<FlightInfo> for Schema
impl TryFrom<FlightInfo> for Schema
impl StructuralPartialEq for FlightInfo
Auto Trait Implementations§
impl !Freeze for FlightInfo
impl RefUnwindSafe for FlightInfo
impl Send for FlightInfo
impl Sync for FlightInfo
impl Unpin for FlightInfo
impl UnwindSafe for FlightInfo
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<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> 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