33 lines
642 B
Rust
33 lines
642 B
Rust
use std::error::Error;
|
|
|
|
use async_trait::async_trait;
|
|
use twilight_model::user::User;
|
|
|
|
use crate::framework::runtime::Runtime;
|
|
|
|
#[async_trait]
|
|
pub trait ExtrasGetter<S>: Send + Sync {
|
|
type Extras;
|
|
|
|
async fn get_extra(
|
|
&self,
|
|
user: &User,
|
|
rt: &Runtime<S, Self::Extras>,
|
|
) -> Result<Self::Extras, Box<dyn Error>>;
|
|
}
|
|
|
|
pub struct DefaultExtraGetter;
|
|
|
|
#[async_trait]
|
|
impl<S> ExtrasGetter<S> for DefaultExtraGetter {
|
|
type Extras = ();
|
|
|
|
async fn get_extra(
|
|
&self,
|
|
_user: &User,
|
|
_rt: &Runtime<S, Self::Extras>,
|
|
) -> Result<Self::Extras, Box<dyn Error>> {
|
|
Ok(())
|
|
}
|
|
}
|