fix: Implement std::fmt::Display for Permission to resolve compilation errors
Some checks failed
Lint and Build / Lint (push) Failing after 6s
Lint and Build / Build (push) Has been skipped
Lint and Build / Docker Build (push) Has been skipped

This commit is contained in:
goose 2026-02-20 09:44:48 -03:00
parent 20895c98ff
commit 7d83255051
2 changed files with 14 additions and 100 deletions

View file

@ -1,9 +1,8 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use strum::{Display, EnumString}; use std::fmt;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Display, EnumString)] #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")] #[serde(rename_all = "lowercase")]
#[strum(serialize_all = "lowercase")]
pub enum Permission { pub enum Permission {
Read, Read,
Write, Write,
@ -12,6 +11,18 @@ pub enum Permission {
Admin, Admin,
} }
impl fmt::Display for Permission {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Read => write!(f, "read"),
Self::Write => write!(f, "write"),
Self::Delete => write!(f, "delete"),
Self::Share => write!(f, "share"),
Self::Admin => write!(f, "admin"),
}
}
}
impl Permission { impl Permission {
pub fn can_read(&self) -> bool { pub fn can_read(&self) -> bool {
matches!(self, Self::Read | Self::Admin) matches!(self, Self::Read | Self::Admin)

View file

@ -1,97 +0,0 @@
candidate #3: `KeyInit`
candidate #4: `KeyIvInit`
candidate #5: `Mac`
candidate #6: `VariableOutput`
candidate #7: `VariableOutputCore`
candidate #8: `ahash::HashMapExt`
candidate #9: `ahash::HashSetExt`
candidate #10: `bitvec::store::BitStore`
candidate #11: `nonzero_ext::NonZero`
candidate #12: `parking_lot_core::thread_parker::ThreadParkerT`
candidate #13: `radium::Radium`
candidate #14: `rand::distr::uniform::UniformSampler`
candidate #15: `rand::distributions::uniform::UniformSampler`
candidate #16: `ring::aead::BoundKey`
candidate #17: `serde_with::duplicate_key_impls::error_on_duplicate::PreventDuplicateInsertsMap`
candidate #18: `serde_with::duplicate_key_impls::error_on_duplicate::PreventDuplicateInsertsSet`
candidate #19: `serde_with::duplicate_key_impls::first_value_wins::DuplicateInsertsFirstWinsMap`
candidate #20: `serde_with::duplicate_key_impls::first_value_wins::DuplicateInsertsFirstWinsSet`
candidate #21: `serde_with::duplicate_key_impls::last_value_wins::DuplicateInsertsLastWinsSet`
candidate #22: `trust_dns_proto::Executor`
error[E0599]: no function or associated item named `new` found for struct `PasswordService` in the current scope
--> src/models/user.rs:117:49
|
117 | let password_service = PasswordService::new();
| ^^^ function or associated item not found in `PasswordService`
|
::: src/auth/password.rs:10:1
|
10 | pub struct PasswordService;
| -------------------------- function or associated item `new` not found for this struct
|
= help: items from traits can only be used if the trait is implemented and in scope
= note: the following traits define an item `new`, perhaps you need to implement one of them:
candidate #1: `Bit`
candidate #2: `Digest`
candidate #3: `KeyInit`
candidate #4: `KeyIvInit`
candidate #5: `Mac`
candidate #6: `VariableOutput`
candidate #7: `VariableOutputCore`
candidate #8: `ahash::HashMapExt`
candidate #9: `ahash::HashSetExt`
candidate #10: `bitvec::store::BitStore`
candidate #11: `nonzero_ext::NonZero`
candidate #12: `parking_lot_core::thread_parker::ThreadParkerT`
candidate #13: `radium::Radium`
candidate #14: `rand::distr::uniform::UniformSampler`
candidate #15: `rand::distributions::uniform::UniformSampler`
candidate #16: `ring::aead::BoundKey`
candidate #17: `serde_with::duplicate_key_impls::error_on_duplicate::PreventDuplicateInsertsMap`
candidate #18: `serde_with::duplicate_key_impls::error_on_duplicate::PreventDuplicateInsertsSet`
candidate #19: `serde_with::duplicate_key_impls::first_value_wins::DuplicateInsertsFirstWinsMap`
candidate #20: `serde_with::duplicate_key_impls::first_value_wins::DuplicateInsertsFirstWinsSet`
candidate #21: `serde_with::duplicate_key_impls::last_value_wins::DuplicateInsertsLastWinsSet`
candidate #22: `trust_dns_proto::Executor`
error[E0277]: the trait bound `fn(State<AppState>, ..., ...) -> ... {setup_recovery}: Handler<_, _>` is not satisfied
--> src/main.rs:100:49
|
100 | .route("/api/auth/recovery/setup", post(handlers::setup_recovery))
| ---- ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Handler<_, _>` is not implemented for fn item `fn(State<AppState>, Claims, Json<...>) -> ... {setup_recovery}`
| |
| required by a bound introduced by this call
|
= note: Consider using `#[axum::debug_handler]` to improve the error message
help: the following other types implement trait `Handler<T, S>`
--> /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/method_routing.rs:1309:1
|
1309 | / impl<S> Handler<(), S> for MethodRouter<S>
1310 | | where
1311 | | S: Clone + 'static,
| |_______________________^ `MethodRouter<S>` implements `Handler<(), S>`
|
::: /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/handler/mod.rs:303:1
|
303 | / impl<H, S, T, L> Handler<T, S> for Layered<L, H, T, S>
304 | | where
305 | | L: Layer<HandlerService<H, T, S>> + Clone + Send + 'static,
306 | | H: Handler<T, S>,
... |
310 | | T: 'static,
311 | | S: 'static,
| |_______________^ `axum::handler::Layered<L, H, T, S>` implements `Handler<T, S>`
note: required by a bound in `post`
--> /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/method_routing.rs:443:1
|
443 | top_level_handler_fn!(post, POST);
| ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^
| | |
| | required by a bound in this function
| required by this bound in `post`
= note: the full name for the type has been written to '/app/target/debug/deps/normogen_backend-d569d515f613fad5.long-type-4867908669310830501.txt'
= note: consider using `--verbose` to print the full type name to the console
= note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
Some errors have detailed explanations: E0277, E0282, E0308, E0432, E0433, E0599, E0609, E0659.
For more information about an error, try `rustc --explain E0277`.
warning: `normogen-backend` (bin "normogen-backend") generated 2 warnings
error: could not compile `normogen-backend` (bin "normogen-backend") due to 32 previous errors; 2 warnings emitted