Skip to main content

Request

Struct Request 

Source
pub struct Request {
    pub seq: i64,
    pub command: Command,
}
Expand description

Represents a request from a client.

Note that unlike the specification, this implementation does not define a ProtocolMessage base interface. Instead, the only common part (the sequence number) is repeated in the struct.

Specification: Request

Fields§

§seq: i64

Sequence number for the Request.

From the specification:

Sequence number of the message (also known as message ID). The seq for the first message sent by a client or debug adapter is 1, and for each subsequent message is 1 greater than the previous message sent by that actor. seq can be used to order requests, responses, and events, and to associate requests with their corresponding responses. For protocol messages of type request the sequence number can be used to cancel the request.

§command: Command

The command to execute.

This is stringly typed in the specification, but represented as an enum for better ergonomics in Rust code, along with the arguments when present.

Implementations§

Source§

impl Request

Source

pub fn success(self, body: ResponseBody) -> Response

Create a successful response for a given request. The sequence number will be copied from request, message will be None (as its neither cancelled nor an error). The body argument contains the response itself.

Source

pub fn error(self, error: &str) -> Response

Create an error response for a given request. The sequence number will be copied from the request, message will be None (as its neither cancelled nor an error).

§Arguments
  • req: The request this response corresponds to.
  • body: The body of the response to attach.
Source

pub fn cancellation(self) -> Response

Create a cancellation response for the given request. The sequence number will be copied from the request, message will be ResponseMessage::Cancelled, success will be false, and body will be None.

Source

pub fn ack(self) -> Result<Response, ServerError>

Create an acknowledgement response. This is a shorthand for responding to requests where the response does not require a body.

Trait Implementations§

Source§

impl Clone for Request

Source§

fn clone(&self) -> Request

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Request

Source§

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

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

impl<'de> Deserialize<'de> for Request

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. 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, 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,