Struct rocket::http::Status [−][src]
Expand description
Structure representing an HTTP status: an integer code and a reason phrase.
Usage
Status classes should rarely be created directly. Instead, an associated constant should be used; one is declared for every status defined in the HTTP standard.
Example
A status of 200 OK can be instantiated via the Ok constant:
use rocket::http::Status; let ok = Status::Ok;
A status of 404 Not Found can be instantiated via the NotFound constant:
use rocket::http::Status; let not_found = Status::NotFound;
The code and phrase can be retrieved directly:
use rocket::http::Status; let not_found = Status::NotFound; assert_eq!(not_found.code, 404); assert_eq!(not_found.reason, "Not Found"); assert_eq!(not_found.to_string(), "404 Not Found".to_string());
Fields
code: u16The HTTP status code associated with this status.
reason: &'static strThe HTTP reason phrase associated with this status.
Implementations
impl Status[src]
impl Status[src]pub fn new(code: u16, reason: &'static str) -> Status[src]
pub fn new(code: u16, reason: &'static str) -> Status[src]Creates a new Status with code and reason. This should be used only
to construct non-standard HTTP statuses. Use an associated constant for
standard statuses.
Example
Create a custom 299 Somewhat Successful status:
use rocket::http::Status; let custom = Status::new(299, "Somewhat Successful"); assert_eq!(custom.to_string(), "299 Somewhat Successful".to_string());
pub fn class(&self) -> StatusClass[src]
pub fn class(&self) -> StatusClass[src]Returns the class of a given status.
Example
use rocket::http::{Status, StatusClass}; let processing = Status::Processing; assert_eq!(processing.class(), StatusClass::Informational); let ok = Status::Ok; assert_eq!(ok.class(), StatusClass::Success); let see_other = Status::SeeOther; assert_eq!(see_other.class(), StatusClass::Redirection); let not_found = Status::NotFound; assert_eq!(not_found.class(), StatusClass::ClientError); let internal_error = Status::InternalServerError; assert_eq!(internal_error.class(), StatusClass::ServerError); let custom = Status::new(600, "Bizarre"); assert_eq!(custom.class(), StatusClass::Unknown);
pub const SwitchingProtocols: Status[src]
pub const SwitchingProtocols: Status[src]Status with code
101
and reason
Switching Protocols
.
pub const Processing: Status[src]
pub const Processing: Status[src]Status with code
102
and reason
Processing
.
pub const NonAuthoritativeInformation: Status[src]
pub const NonAuthoritativeInformation: Status[src]Status with code
203
and reason
Non-Authoritative Information
.
pub const ResetContent: Status[src]
pub const ResetContent: Status[src]Status with code
205
and reason
Reset Content
.
pub const PartialContent: Status[src]
pub const PartialContent: Status[src]Status with code
206
and reason
Partial Content
.
pub const MultiStatus: Status[src]
pub const MultiStatus: Status[src]Status with code
207
and reason
Multi-Status
.
pub const AlreadyReported: Status[src]
pub const AlreadyReported: Status[src]Status with code
208
and reason
Already Reported
.
pub const MultipleChoices: Status[src]
pub const MultipleChoices: Status[src]Status with code
300
and reason
Multiple Choices
.
pub const MovedPermanently: Status[src]
pub const MovedPermanently: Status[src]Status with code
301
and reason
Moved Permanently
.
pub const NotModified: Status[src]
pub const NotModified: Status[src]Status with code
304
and reason
Not Modified
.
pub const TemporaryRedirect: Status[src]
pub const TemporaryRedirect: Status[src]Status with code
307
and reason
Temporary Redirect
.
pub const PermanentRedirect: Status[src]
pub const PermanentRedirect: Status[src]Status with code
308
and reason
Permanent Redirect
.
pub const BadRequest: Status[src]
pub const BadRequest: Status[src]Status with code
400
and reason
Bad Request
.
pub const Unauthorized: Status[src]
pub const Unauthorized: Status[src]Status with code
401
and reason
Unauthorized
.
pub const PaymentRequired: Status[src]
pub const PaymentRequired: Status[src]Status with code
402
and reason
Payment Required
.
pub const MethodNotAllowed: Status[src]
pub const MethodNotAllowed: Status[src]Status with code
405
and reason
Method Not Allowed
.
pub const NotAcceptable: Status[src]
pub const NotAcceptable: Status[src]Status with code
406
and reason
Not Acceptable
.
pub const ProxyAuthenticationRequired: Status[src]
pub const ProxyAuthenticationRequired: Status[src]Status with code
407
and reason
Proxy Authentication Required
.
pub const RequestTimeout: Status[src]
pub const RequestTimeout: Status[src]Status with code
408
and reason
Request Timeout
.
pub const LengthRequired: Status[src]
pub const LengthRequired: Status[src]Status with code
411
and reason
Length Required
.
pub const PreconditionFailed: Status[src]
pub const PreconditionFailed: Status[src]Status with code
412
and reason
Precondition Failed
.
pub const PayloadTooLarge: Status[src]
pub const PayloadTooLarge: Status[src]Status with code
413
and reason
Payload Too Large
.
pub const UriTooLong: Status[src]
pub const UriTooLong: Status[src]Status with code
414
and reason
URI Too Long
.
pub const UnsupportedMediaType: Status[src]
pub const UnsupportedMediaType: Status[src]Status with code
415
and reason
Unsupported Media Type
.
pub const RangeNotSatisfiable: Status[src]
pub const RangeNotSatisfiable: Status[src]Status with code
416
and reason
Range Not Satisfiable
.
pub const ExpectationFailed: Status[src]
pub const ExpectationFailed: Status[src]Status with code
417
and reason
Expectation Failed
.
pub const MisdirectedRequest: Status[src]
pub const MisdirectedRequest: Status[src]Status with code
421
and reason
Misdirected Request
.
pub const UnprocessableEntity: Status[src]
pub const UnprocessableEntity: Status[src]Status with code
422
and reason
Unprocessable Entity
.
pub const FailedDependency: Status[src]
pub const FailedDependency: Status[src]Status with code
424
and reason
Failed Dependency
.
pub const UpgradeRequired: Status[src]
pub const UpgradeRequired: Status[src]Status with code
426
and reason
Upgrade Required
.
pub const PreconditionRequired: Status[src]
pub const PreconditionRequired: Status[src]Status with code
428
and reason
Precondition Required
.
pub const TooManyRequests: Status[src]
pub const TooManyRequests: Status[src]Status with code
429
and reason
Too Many Requests
.
pub const RequestHeaderFieldsTooLarge: Status[src]
pub const RequestHeaderFieldsTooLarge: Status[src]Status with code
431
and reason
Request Header Fields Too Large
.
pub const UnavailableForLegalReasons: Status[src]
pub const UnavailableForLegalReasons: Status[src]Status with code
451
and reason
Unavailable For Legal Reasons
.
pub const InternalServerError: Status[src]
pub const InternalServerError: Status[src]Status with code
500
and reason
Internal Server Error
.
pub const NotImplemented: Status[src]
pub const NotImplemented: Status[src]Status with code
501
and reason
Not Implemented
.
pub const BadGateway: Status[src]
pub const BadGateway: Status[src]Status with code
502
and reason
Bad Gateway
.
pub const ServiceUnavailable: Status[src]
pub const ServiceUnavailable: Status[src]Status with code
503
and reason
Service Unavailable
.
pub const GatewayTimeout: Status[src]
pub const GatewayTimeout: Status[src]Status with code
504
and reason
Gateway Timeout
.
pub const HttpVersionNotSupported: Status[src]
pub const HttpVersionNotSupported: Status[src]Status with code
505
and reason
HTTP Version Not Supported
.
pub const VariantAlsoNegotiates: Status[src]
pub const VariantAlsoNegotiates: Status[src]Status with code
506
and reason
Variant Also Negotiates
.
pub const InsufficientStorage: Status[src]
pub const InsufficientStorage: Status[src]Status with code
507
and reason
Insufficient Storage
.
pub const LoopDetected: Status[src]
pub const LoopDetected: Status[src]Status with code
508
and reason
Loop Detected
.
pub const NotExtended: Status[src]
pub const NotExtended: Status[src]Status with code
510
and reason
Not Extended
.
pub const NetworkAuthenticationRequired: Status[src]
pub const NetworkAuthenticationRequired: Status[src]Status with code
511
and reason
Network Authentication Required
.
pub fn from_code(code: u16) -> Option<Status>[src]
pub fn from_code(code: u16) -> Option<Status>[src]Returns a Status given a standard status code code. If code is
not a known status code, None is returned.
Example
Create a Status from a known code:
use rocket::http::Status; let not_found = Status::from_code(404); assert_eq!(not_found, Some(Status::NotFound));
Create a Status from an unknown code:
use rocket::http::Status; let not_found = Status::from_code(600); assert!(not_found.is_none());
Trait Implementations
impl<'r> Responder<'r> for Status[src]
impl<'r> Responder<'r> for Status[src]The response generated by Status depends on the status code itself. The
table below summarizes the functionality:
| Status Code Range | Response |
|---|---|
| [400, 599] | Forwards to catcher for given status. |
| 100, [200, 205] | Empty with status of self. |
| All others. | Invalid. Errors to 500 catcher. |
In short, a client or server error status codes will forward to the
corresponding error catcher, a successful status code less than 206 or
100 responds with any empty body and the given status code, and all other
status code emit an error message and forward to the 500 (internal server
error) catcher.
fn respond_to(self, _: &Request<'_>) -> Result<'r>[src]
fn respond_to(self, _: &Request<'_>) -> Result<'r>[src]Returns Ok if a Response could be generated successfully. Otherwise,
returns an Err with a failing Status. Read more
impl Copy for Status[src]
impl Eq for Status[src]
impl StructuralEq for Status[src]
impl StructuralPartialEq for Status[src]
Auto Trait Implementations
impl RefUnwindSafe for Status
impl Send for Status
impl Sync for Status
impl Unpin for Status
impl UnwindSafe for Status
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized, [src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized, [src]pub fn equivalent(&self, key: &K) -> bool[src]
pub fn equivalent(&self, key: &K) -> bool[src]Compare self to key and return true if they are equal.
impl<T> IntoCollection<T> for T[src]
impl<T> IntoCollection<T> for T[src]pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>, [src]
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>, [src]Converts self into a collection.
pub fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>, [src]
F: FnMut(T) -> U,
A: Array<Item = U>,
impl<T> Same<T> for T
impl<T> Same<T> for Ttype Output = T
type Output = TShould always be Self
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,