pub struct RequestBuilder<'a> { /* private fields */ }
Expand description

The RequestBuilder is used to create the protocol requests. Each request is represented by an instance of protocol::request::Request.

Implementations§

source§

impl<'a> RequestBuilder<'a>

The RequestBuilder is a stateful builder for protocol::request::Request objects. After being instantiated with the base parameters for the current request, it has functions for accumulating an update check, a ping, and multiple events for individual App objects.

The ‘add_*()’ functions are all insensitive to order for a given App and it’s Cohort. However, if multiple different App entries are used, then order matters. The order in the request is the order that the Apps are added to the RequestBuilder.

Further, the cohort is only captured on the first time a given App is added to the request. If, for some reason, the same App is added twice, but with a different cohort, the latter cohort is ignored.

The operation being added (update check, ping, or event) is added to the existing App. The app maintains its existing place in the list of Apps to be added to the request.

source

pub fn new(config: &'a Config, params: &RequestParams) -> Self

Constructor for creating a new RequestBuilder based on the Updater configuration and the parameters for the current request.

source

pub fn add_update_check(self, app: &App) -> Self

This function adds an update check for the given App, in the given Cohort. This function is an idempotent accumulator, in that it only once adds the App with it’s associated Cohort to the request. Afterward, it just adds the update check to the App.

source

pub fn add_ping(self, app: &App) -> Self

This function adds a Ping for the given App, in the given Cohort. This function is an idempotent accumulator, in that it only once adds the App with it’s associated Cohort to the request. Afterward, it just marks the App as needing a Ping.

source

pub fn add_event(self, app: &App, event: Event) -> Self

This function adds an Event for the given App, in the given Cohort. This function is an idempotent accumulator, in that it only once adds the App with it’s associated Cohort to the request. Afterward, it just adds the Event to the App.

source

pub fn request_id(self, request_id: GUID) -> Self

Set the request id of the request.

source

pub fn session_id(self, session_id: GUID) -> Self

Set the session id of the request.

source

pub fn build( &self, cup_handler: Option<&impl Cupv2RequestHandler> ) -> Result<(Request<Body>, Option<RequestMetadata>)>

This function constructs the protocol::request::Request object from this Builder.

Note that the builder is not consumed in the process, and can be used afterward.

Auto Trait Implementations§

§

impl<'a> Freeze for RequestBuilder<'a>

§

impl<'a> RefUnwindSafe for RequestBuilder<'a>

§

impl<'a> Send for RequestBuilder<'a>

§

impl<'a> Sync for RequestBuilder<'a>

§

impl<'a> Unpin for RequestBuilder<'a>

§

impl<'a> UnwindSafe for RequestBuilder<'a>

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

§

type Output = T

Should always be Self
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.
source§

impl<T> Unless for T

source§

fn unless(self, option: Option<T>) -> T

§

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