Struct rocket::http::Status[][src]

pub struct Status {
    pub code: u16,
    pub reason: &'static str,

Structure representing an HTTP status: an integer code and a reason phrase.


Status classes should rarely be created directly. Instead, an associated constant should be used; one is declared for every standard status defined in the HTTP standard.


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());


The HTTP status code associated with this status.

The HTTP reason phrase associated with this status.


impl Status

Creates a new Status with code and reason. This should be only to construct non-standard HTTP statuses. Use an associated constant for standard statuses.


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());

Returns the class of a given status.


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);

Continue: Status = <Status>::new(100, "Continue")

Status with code 100 and reason Continue .

SwitchingProtocols: Status = <Status>::new(101, "Switching Protocols")

Status with code 101 and reason Switching Protocols .

Processing: Status = <Status>::new(102, "Processing")

Status with code 102 and reason Processing .

Ok: Status = <Status>::new(200, "OK")

Status with code 200 and reason OK .

Created: Status = <Status>::new(201, "Created")

Status with code 201 and reason Created .

Accepted: Status = <Status>::new(202, "Accepted")

Status with code 202 and reason Accepted .

NonAuthoritativeInformation: Status = <Status>::new(203, "Non-Authoritative Information")

Status with code 203 and reason Non-Authoritative Information .

NoContent: Status = <Status>::new(204, "No Content")

Status with code 204 and reason No Content .

ResetContent: Status = <Status>::new(205, "Reset Content")

Status with code 205 and reason Reset Content .

PartialContent: Status = <Status>::new(206, "Partial Content")

Status with code 206 and reason Partial Content .

MultiStatus: Status = <Status>::new(207, "Multi-Status")

Status with code 207 and reason Multi-Status .

AlreadyReported: Status = <Status>::new(208, "Already Reported")

Status with code 208 and reason Already Reported .

ImUsed: Status = <Status>::new(226, "IM Used")

Status with code 226 and reason IM Used .

MultipleChoices: Status = <Status>::new(300, "Multiple Choices")

Status with code 300 and reason Multiple Choices .

MovedPermanently: Status = <Status>::new(301, "Moved Permanently")

Status with code 301 and reason Moved Permanently .

Found: Status = <Status>::new(302, "Found")

Status with code 302 and reason Found .

SeeOther: Status = <Status>::new(303, "See Other")

Status with code 303 and reason See Other .

NotModified: Status = <Status>::new(304, "Not Modified")

Status with code 304 and reason Not Modified .

UseProxy: Status = <Status>::new(305, "Use Proxy")

Status with code 305 and reason Use Proxy .

TemporaryRedirect: Status = <Status>::new(307, "Temporary Redirect")

Status with code 307 and reason Temporary Redirect .

PermanentRedirect: Status = <Status>::new(308, "Permanent Redirect")

Status with code 308 and reason Permanent Redirect .

BadRequest: Status = <Status>::new(400, "Bad Request")

Status with code 400 and reason Bad Request .

Unauthorized: Status = <Status>::new(401, "Unauthorized")

Status with code 401 and reason Unauthorized .

PaymentRequired: Status = <Status>::new(402, "Payment Required")

Status with code 402 and reason Payment Required .

Forbidden: Status = <Status>::new(403, "Forbidden")

Status with code 403 and reason Forbidden .

NotFound: Status = <Status>::new(404, "Not Found")

Status with code 404 and reason Not Found .

MethodNotAllowed: Status = <Status>::new(405, "Method Not Allowed")

Status with code 405 and reason Method Not Allowed .

NotAcceptable: Status = <Status>::new(406, "Not Acceptable")

Status with code 406 and reason Not Acceptable .

ProxyAuthenticationRequired: Status = <Status>::new(407, "Proxy Authentication Required")

Status with code 407 and reason Proxy Authentication Required .

RequestTimeout: Status = <Status>::new(408, "Request Timeout")

Status with code 408 and reason Request Timeout .

Conflict: Status = <Status>::new(409, "Conflict")

Status with code 409 and reason Conflict .

Gone: Status = <Status>::new(410, "Gone")

Status with code 410 and reason Gone .

LengthRequired: Status = <Status>::new(411, "Length Required")

Status with code 411 and reason Length Required .

PreconditionFailed: Status = <Status>::new(412, "Precondition Failed")

Status with code 412 and reason Precondition Failed .

PayloadTooLarge: Status = <Status>::new(413, "Payload Too Large")

Status with code 413 and reason Payload Too Large .

UriTooLong: Status = <Status>::new(414, "URI Too Long")

Status with code 414 and reason URI Too Long .

UnsupportedMediaType: Status = <Status>::new(415, "Unsupported Media Type")

Status with code 415 and reason Unsupported Media Type .

RangeNotSatisfiable: Status = <Status>::new(416, "Range Not Satisfiable")

Status with code 416 and reason Range Not Satisfiable .

ExpectationFailed: Status = <Status>::new(417, "Expectation Failed")

Status with code 417 and reason Expectation Failed .

ImATeapot: Status = <Status>::new(418, "I\'m a teapot")

Status with code 418 and reason I'm a teapot .

MisdirectedRequest: Status = <Status>::new(421, "Misdirected Request")

Status with code 421 and reason Misdirected Request .

UnprocessableEntity: Status = <Status>::new(422, "Unprocessable Entity")

Status with code 422 and reason Unprocessable Entity .

Locked: Status = <Status>::new(423, "Locked")

Status with code 423 and reason Locked .

FailedDependency: Status = <Status>::new(424, "Failed Dependency")

Status with code 424 and reason Failed Dependency .

UpgradeRequired: Status = <Status>::new(426, "Upgrade Required")

Status with code 426 and reason Upgrade Required .

PreconditionRequired: Status = <Status>::new(428, "Precondition Required")

Status with code 428 and reason Precondition Required .

TooManyRequests: Status = <Status>::new(429, "Too Many Requests")

Status with code 429 and reason Too Many Requests .

RequestHeaderFieldsTooLarge: Status = <Status>::new(431, "Request Header Fields Too Large")

Status with code 431 and reason Request Header Fields Too Large .

UnavailableForLegalReasons: Status = <Status>::new(451, "Unavailable For Legal Reasons")

Status with code 451 and reason Unavailable For Legal Reasons .

InternalServerError: Status = <Status>::new(500, "Internal Server Error")

Status with code 500 and reason Internal Server Error .

NotImplemented: Status = <Status>::new(501, "Not Implemented")

Status with code 501 and reason Not Implemented .

BadGateway: Status = <Status>::new(502, "Bad Gateway")

Status with code 502 and reason Bad Gateway .

ServiceUnavailable: Status = <Status>::new(503, "Service Unavailable")

Status with code 503 and reason Service Unavailable .

GatewayTimeout: Status = <Status>::new(504, "Gateway Timeout")

Status with code 504 and reason Gateway Timeout .

HttpVersionNotSupported: Status = <Status>::new(505, "HTTP Version Not Supported")

Status with code 505 and reason HTTP Version Not Supported .

VariantAlsoNegotiates: Status = <Status>::new(506, "Variant Also Negotiates")

Status with code 506 and reason Variant Also Negotiates .

InsufficientStorage: Status = <Status>::new(507, "Insufficient Storage")

Status with code 507 and reason Insufficient Storage .

LoopDetected: Status = <Status>::new(508, "Loop Detected")

Status with code 508 and reason Loop Detected .

NotExtended: Status = <Status>::new(510, "Not Extended")

Status with code 510 and reason Not Extended .

NetworkAuthenticationRequired: Status = <Status>::new(511, "Network Authentication Required")

Status with code 511 and reason Network Authentication Required .

Returns a Status given a standard status code code. If code is not a known status code, None is returned.


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);

Trait Implementations

impl Debug for Status

Formats the value using the given formatter. Read more

impl Clone for Status

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Copy for Status

impl Hash for Status

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl PartialEq for Status

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Eq for Status

impl Display for Status

Formats the value using the given formatter. Read more

impl From<Status> for Failure

Performs the conversion.

Auto Trait Implementations

impl Send for Status

impl Sync for Status