mod user;
pub use user::User;
mod repo;
pub use repo::Repo;
mod commit;
pub use commit::Commit;
mod org;
pub use org::Org;
mod issue;
pub use issue::Issue;
mod release;
pub use release::Release;
use crate::Result;
use async_trait::async_trait;
#[async_trait]
pub trait Client: Send + Sync {
fn set_token(&mut self, token: &str) -> Result<()>;
fn set_proxy(&mut self, proxy: &str) -> Result<()>;
fn user(&self) -> Box<dyn User>;
fn org(&self) -> Box<dyn Org>;
fn repo(&self) -> Box<dyn Repo>;
fn commit(&self) -> Box<dyn Commit>;
fn issue(&self) -> Box<dyn Issue>;
fn release(&self) -> Box<dyn Release>;
}