Skip to main content

SourceSubscriptionSettings

Struct SourceSubscriptionSettings 

Source
pub struct SourceSubscriptionSettings {
    pub source_id: String,
    pub enable_bootstrap: bool,
    pub query_id: String,
    pub nodes: HashSet<String>,
    pub relations: HashSet<String>,
    pub resume_from: Option<Bytes>,
    pub request_position_handle: bool,
    pub last_sequence: Option<u64>,
}
Expand description

Settings passed to a source when subscribing

SourceSubscriptionSettings contains all the information a source needs to intelligently handle bootstrap and subscription for a query, including the specific node and relation labels the query is interested in.

§Fields

  • source_id: ID of the source
  • enable_bootstrap: Whether to request initial data
  • query_id: ID of the subscribing query
  • nodes: Set of node labels the query is interested in from this source
  • relations: Set of relation labels the query is interested in from this source

§Example

use drasi_lib::config::SourceSubscriptionSettings;
use std::collections::HashSet;

let settings = SourceSubscriptionSettings {
    source_id: "orders_db".to_string(),
    enable_bootstrap: true,
    query_id: "my-query".to_string(),
    nodes: ["Order", "Customer"].iter().map(|s| s.to_string()).collect(),
    relations: ["PLACED_BY"].iter().map(|s| s.to_string()).collect(),
    resume_from: None,
    request_position_handle: false,
    last_sequence: None,
};

Fields§

§source_id: String§enable_bootstrap: bool§query_id: String§nodes: HashSet<String>§relations: HashSet<String>§resume_from: Option<Bytes>

If set, the subscribing query requests events replayed from this source position. Contains the opaque position bytes that the source interprets to seek its change stream. Only meaningful when the source returns supports_replay() == true.

§request_position_handle: bool

If true, the query requests a shared Arc<AtomicU64> position handle in the SubscriptionResponse for reporting its durably-processed position back to the source.

§last_sequence: Option<u64>

The last sequence number processed by this query before shutdown. Sources use this to ensure their sequence counter continues from where it left off, maintaining monotonicity across restarts.

Trait Implementations§

Source§

impl Clone for SourceSubscriptionSettings

Source§

fn clone(&self) -> SourceSubscriptionSettings

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SourceSubscriptionSettings

Source§

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

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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