Skip to content

Commit af78eab

Browse files
committed
Merge pull request #744 from jongiddy/add-status-421-451
feat(status): add HTTP statuses 421 and 451
2 parents 146df53 + 93fd5a8 commit af78eab

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/status.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ pub enum StatusCode {
155155
/// [curiously, not registered by IANA, but [RFC2324](https://tools.ietf.org/html/rfc2324)]
156156
ImATeapot,
157157

158+
/// 421 Misdirected Request
159+
/// [RFC7540, Section 9.1.2](http://tools.ietf.org/html/rfc7540#section-9.1.2)
160+
MisdirectedRequest,
158161
/// 422 Unprocessable Entity
159162
/// [[RFC4918](https://tools.ietf.org/html/rfc4918)]
160163
UnprocessableEntity,
@@ -180,6 +183,10 @@ pub enum StatusCode {
180183
/// [[RFC6585](https://tools.ietf.org/html/rfc6585)]
181184
RequestHeaderFieldsTooLarge,
182185

186+
/// 451 Unavailable For Legal Reasons
187+
/// [[RFC7725](http://tools.ietf.org/html/rfc7725)]
188+
UnavailableForLegalReasons,
189+
183190
/// 500 Internal Server Error
184191
/// [[RFC7231, Section 6.6.1](https://tools.ietf.org/html/rfc7231#section-6.6.1)]
185192
InternalServerError,
@@ -265,13 +272,15 @@ impl StatusCode {
265272
416 => StatusCode::RangeNotSatisfiable,
266273
417 => StatusCode::ExpectationFailed,
267274
418 => StatusCode::ImATeapot,
275+
421 => StatusCode::MisdirectedRequest,
268276
422 => StatusCode::UnprocessableEntity,
269277
423 => StatusCode::Locked,
270278
424 => StatusCode::FailedDependency,
271279
426 => StatusCode::UpgradeRequired,
272280
428 => StatusCode::PreconditionRequired,
273281
429 => StatusCode::TooManyRequests,
274282
431 => StatusCode::RequestHeaderFieldsTooLarge,
283+
451 => StatusCode::UnavailableForLegalReasons,
275284
500 => StatusCode::InternalServerError,
276285
501 => StatusCode::NotImplemented,
277286
502 => StatusCode::BadGateway,
@@ -330,13 +339,15 @@ impl StatusCode {
330339
StatusCode::RangeNotSatisfiable => 416,
331340
StatusCode::ExpectationFailed => 417,
332341
StatusCode::ImATeapot => 418,
342+
StatusCode::MisdirectedRequest => 421,
333343
StatusCode::UnprocessableEntity => 422,
334344
StatusCode::Locked => 423,
335345
StatusCode::FailedDependency => 424,
336346
StatusCode::UpgradeRequired => 426,
337347
StatusCode::PreconditionRequired => 428,
338348
StatusCode::TooManyRequests => 429,
339349
StatusCode::RequestHeaderFieldsTooLarge => 431,
350+
StatusCode::UnavailableForLegalReasons => 451,
340351
StatusCode::InternalServerError => 500,
341352
StatusCode::NotImplemented => 501,
342353
StatusCode::BadGateway => 502,
@@ -410,6 +421,7 @@ impl StatusCode {
410421
StatusCode::ExpectationFailed => Some("Expectation Failed"),
411422
StatusCode::ImATeapot => Some("I'm a teapot"),
412423

424+
StatusCode::MisdirectedRequest => Some("Misdirected Request"),
413425
StatusCode::UnprocessableEntity => Some("Unprocessable Entity"),
414426
StatusCode::Locked => Some("Locked"),
415427
StatusCode::FailedDependency => Some("Failed Dependency"),
@@ -421,6 +433,8 @@ impl StatusCode {
421433

422434
StatusCode::RequestHeaderFieldsTooLarge => Some("Request Header Fields Too Large"),
423435

436+
StatusCode::UnavailableForLegalReasons => Some("Unavailable For Legal Reasons"),
437+
424438
StatusCode::InternalServerError => Some("Internal Server Error"),
425439
StatusCode::NotImplemented => Some("Not Implemented"),
426440
StatusCode::BadGateway => Some("Bad Gateway"),
@@ -704,6 +718,7 @@ mod tests {
704718
validate(416, RangeNotSatisfiable, BadRequest, Some("Range Not Satisfiable"));
705719
validate(417, ExpectationFailed, BadRequest, Some("Expectation Failed"));
706720
validate(418, ImATeapot, BadRequest, Some("I'm a teapot"));
721+
validate(421, MisdirectedRequest, BadRequest, Some("Misdirected Request"));
707722
validate(422, UnprocessableEntity, BadRequest, Some("Unprocessable Entity"));
708723
validate(423, Locked, BadRequest, Some("Locked"));
709724
validate(424, FailedDependency, BadRequest, Some("Failed Dependency"));
@@ -712,6 +727,8 @@ mod tests {
712727
validate(429, TooManyRequests, BadRequest, Some("Too Many Requests"));
713728
validate(431, RequestHeaderFieldsTooLarge, BadRequest,
714729
Some("Request Header Fields Too Large"));
730+
validate(451, UnavailableForLegalReasons, BadRequest,
731+
Some("Unavailable For Legal Reasons"));
715732

716733
validate(500, InternalServerError, InternalServerError, Some("Internal Server Error"));
717734
validate(501, NotImplemented, InternalServerError, Some("Not Implemented"));

0 commit comments

Comments
 (0)