Skip to main content

Operation

Struct Operation 

Source
pub struct Operation { /* private fields */ }
Expand description

A request the client has not sent yet. Generated service methods build one from a Route; crate::Client::request builds one for anything the model does not cover.

Implementations§

Source§

impl Operation

Source

pub fn id(&self) -> &str

The operation as the model names it, or METHOD /path for one built by hand.

Source

pub fn method(&self) -> &Method

The HTTP method the operation is sent with.

Source

pub fn path(&self) -> &str

The path the operation is sent to, parameters already filled in.

Source

pub fn query(&mut self, name: &str, value: impl Display) -> &mut Operation

Adds a query parameter. The same name may be added more than once.

Source

pub fn query_optional<T: Display>( &mut self, name: &str, value: Option<&T>, ) -> &mut Operation

Adds a query parameter when there is a value for it, and nothing otherwise.

Source

pub fn json<T: Serialize + ?Sized>( &mut self, body: &T, ) -> Result<&mut Operation, Error>

A JSON body, which is what every modelled write sends.

Source

pub fn form(&mut self, fields: &[(&str, &str)]) -> &mut Operation

A form-encoded body, as a browser would post it.

Source

pub fn multipart(&mut self, content_type: String, body: Bytes) -> &mut Operation

A multipart body the caller assembled, boundary and all. The content type has to name that same boundary for HEY to read the parts.

Source

pub fn body_bytes( &mut self, content_type: impl Into<String>, bytes: Bytes, ) -> &mut Operation

A body the caller encoded, for the representations the model does not describe.

Source

pub fn info(&mut self, info: OperationInfo) -> &mut Operation

Replaces the whole of what the operation announces itself as to the client’s crate::observability::Hooks.

Source

pub fn operation_name( &mut self, name: impl Into<Cow<'static, str>>, ) -> &mut Operation

Announces the operation as something other than the route it sends: HEY stops a time track by updating one, and a wrapper that does so says StopTimeTrack.

Source

pub fn resource_type( &mut self, resource_type: impl Into<Cow<'static, str>>, ) -> &mut Operation

Names the kind of record the operation acts on, in snake_case: box_group.

Source

pub fn resource_id(&mut self, resource_id: i64) -> &mut Operation

Names the record the operation acts on. Generated methods set this from the path parameter that names it.

Source

pub fn idempotent(&mut self, idempotent: bool) -> &mut Operation

Marks the operation as safe to resend, or not, regardless of its HTTP method.

Source

pub fn accept(&mut self, media_type: &'static str) -> &mut Operation

The representation to ask HEY for, sent as Accept.

Source

pub fn without_json_suffix(&mut self) -> &mut Operation

Sends the path as it stands. A modelled route gets a .json suffix put back on the paths Smithy cannot spell it into; a path the caller wrote needs no such repair.

Source

pub fn no_cache(&mut self) -> &mut Operation

Reads past the response cache for this send, so the answer is HEY’s own. A blob is read this way: the cache is for JSON documents.

Source

pub fn capture_redirects(&mut self) -> &mut Operation

Treats a redirect as the answer rather than following it. HEY’s form-backed endpoints answer a 302 or 303 naming what they created, and that Location is the whole of what the request was for.

Source

pub fn form_representation(&mut self) -> &mut Operation

Asks for the HTML representation a form-backed endpoint serves: no .json suffix, and no preference about what comes back.

Source

pub fn quiet(&mut self) -> &mut Operation

Sends this without announcing an operation: no gate, no start, no end. For a request made inside another operation — the read-back a write needs to answer with the record it wrote — so the hooks hear about that operation once rather than twice.

The request hooks still fire, so every send the SDK makes is still reported. So is every layer the announced operation went through: a quiet send is inside its bulkhead permit and under its circuit breaker, not beside them.

Trait Implementations§

Source§

impl Clone for Operation

Source§

fn clone(&self) -> Operation

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 Operation

An operation prints what it is and where it goes, not what it carries: the path without any query the caller wrote into it, the query’s names without their values, the body’s shape without its bytes. A {:?} is the kind of thing that lands in a log, and the values are the caller’s data.

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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