utoipa_helper/
status_code_trait.rs1use axum::http::StatusCode;
2
3pub trait StatusCodeTrait: Send + Sync {
4 fn status_code() -> StatusCode;
5}
6
7pub struct StatusCodeOk {}
8
9impl StatusCodeTrait for StatusCodeOk {
10 fn status_code() -> StatusCode {
11 StatusCode::OK
12 }
13}
14
15pub struct StatusCodeCreated {}
16
17impl StatusCodeTrait for StatusCodeCreated {
18 fn status_code() -> StatusCode {
19 StatusCode::CREATED
20 }
21}
22
23pub struct StatusCodeNoContent {}
24
25impl StatusCodeTrait for StatusCodeNoContent {
26 fn status_code() -> StatusCode {
27 StatusCode::NO_CONTENT
28 }
29}
30
31pub struct StatusCodeValue<const S: u16> {}
32
33impl<const S: u16> StatusCodeTrait for StatusCodeValue<S> {
34 fn status_code() -> StatusCode {
35 StatusCode::from_u16(S).unwrap_or(StatusCode::OK)
36 }
37}