pub struct FlowDescriptor<K> { /* private fields */ }Expand description
Describes the schema of a flow, providing a convenient, performant, and correct way to build the flow being described.
The descriptor itself is immutable, to ensure that the flow is constructed correctly since successful ingestion requires Sift and the client to agree on the schema of the flow.
While the key K can be arbitrary, it is recommended to use a trivial key that avoids
allocations, such as a usize or u32, though for convenience, a string (the channel
name) could also be used and will still help minimize additional string allocations.
§Example
use sift_stream::{FlowDescriptor, FlowDescriptorBuilder, FlowBuilder, ChannelDataType};
let mut flow_descriptor_builder = FlowDescriptorBuilder::new("ingestion_config_id", "my_flow_name");
let my_channel_idx = flow_descriptor_builder.add("my_channel_key", ChannelDataType::String);
let my_other_channel_idx = flow_descriptor_builder.add("my_other_channel_key", ChannelDataType::Uint64);
let flow_descriptor = flow_descriptor_builder.build();
let mut flow_builder = FlowBuilder::new(&flow_descriptor);
flow_builder.set(my_channel_idx, "my_value".to_string());
flow_builder.set_with_key("my_other_channel_key", 123_u64);Implementations§
Source§impl<K> FlowDescriptor<K>
impl<K> FlowDescriptor<K>
Trait Implementations§
Source§impl<K: Clone> Clone for FlowDescriptor<K>
impl<K: Clone> Clone for FlowDescriptor<K>
Source§fn clone(&self) -> FlowDescriptor<K>
fn clone(&self) -> FlowDescriptor<K>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S> TryFrom<(S, &FlowConfig)> for FlowDescriptor<String>where
S: ToString,
impl<S> TryFrom<(S, &FlowConfig)> for FlowDescriptor<String>where
S: ToString,
Auto Trait Implementations§
impl<K> Freeze for FlowDescriptor<K>
impl<K> RefUnwindSafe for FlowDescriptor<K>where
K: RefUnwindSafe,
impl<K> Send for FlowDescriptor<K>where
K: Send,
impl<K> Sync for FlowDescriptor<K>where
K: Sync,
impl<K> Unpin for FlowDescriptor<K>where
K: Unpin,
impl<K> UnsafeUnpin for FlowDescriptor<K>
impl<K> UnwindSafe for FlowDescriptor<K>where
K: UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Wrap the input message
T in a tonic::RequestSource§impl<T> RetryExt for T
impl<T> RetryExt for T
Source§fn retrying(self, cfg: RetryConfig) -> Retrying<Self>
fn retrying(self, cfg: RetryConfig) -> Retrying<Self>
Wraps
self in a Retrying adapter with the given configuration.