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