Skip to main content

CursorOp

Struct CursorOp 

Source
pub struct CursorOp {
    pub cluster: ClusterId,
    pub method: HttpMethod,
    pub path: String,
    pub body: Vec<u8>,
    pub query: Option<String>,
    pub endpoint: Option<String>,
    pub protocol: Protocol,
    pub trace: Option<TraceContext>,
    pub forward_headers: Vec<(String, String)>,
}
Expand description

A raw cursor passthrough op (docs/03 §6): forward method path with body to the specific cluster the cursor is pinned to, scroll/PIT continue, clear, or close. Unlike the typed ops, the destination is already resolved (the engine recovered it from the cursor’s signed envelope), so this carries the cluster directly rather than a partition.

Fields§

§cluster: ClusterId

The cluster the cursor is pinned to.

§method: HttpMethod

The HTTP method to forward (continue is POST/GET, clear/close DELETE).

§path: String

The upstream path (e.g. /_search/scroll), already with the real cursor id.

§body: Vec<u8>

The request body to forward (the real, unwrapped cursor id substituted in).

§query: Option<String>

An already-allow-listed query string (without the ?) to append to the upstream URL, e.g. keep_alive=1m on PIT create. Filtered by the engine.

§endpoint: Option<String>

The pinned cluster’s base URL, when the engine knows it (the placement that opened the cursor supplied it). None for an affinity continue recovered from the envelope alone: the sink then reuses the pool the opening request already built for this cluster, erroring only if none exists.

§protocol: Protocol

The upstream wire protocol. Defaults to Protocol::Http1.

§trace: Option<TraceContext>

The W3C trace context to forward downstream.

§forward_headers: Vec<(String, String)>

Client headers to relay verbatim to the upstream (the forwarding policy’s output). Applied before trace, so a proxy-injected trace header wins when span export is on. Empty by default.

Implementations§

Source§

impl CursorOp

Source

pub fn new( cluster: ClusterId, method: HttpMethod, path: impl Into<String>, body: Vec<u8>, ) -> Self

Constructs a cursor passthrough op (defaulting to HTTP/1.1 upstream).

Source

pub fn with_forward_headers(self, headers: Vec<(String, String)>) -> Self

Sets the client headers to relay verbatim to the upstream (builder style).

Source

pub fn with_endpoint(self, endpoint: Option<String>) -> Self

Sets the pinned cluster’s base URL (builder style), when the engine knows it. Lets the sink build the pool for an affinity request even on an instance that did not serve the opening call.

Source

pub fn with_protocol(self, protocol: Protocol) -> Self

Sets the upstream wire protocol (builder style).

Source

pub fn with_query(self, query: Option<String>) -> Self

Sets the (already allow-listed) upstream query string (builder style).

Source

pub fn with_trace(self, trace: Option<TraceContext>) -> Self

Sets the trace context to propagate downstream (builder style).

Trait Implementations§

Source§

impl Clone for CursorOp

Source§

fn clone(&self) -> CursorOp

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 CursorOp

Source§

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

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

impl Eq for CursorOp

Source§

impl PartialEq for CursorOp

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for CursorOp

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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<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