pub trait ForgeApi: Send + Sync {
Show 16 methods
// Required methods
fn kind(&self) -> ForgeKind;
fn cwd(&self) -> &Path;
fn auth_status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn repo_view<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ForgeRepo>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgePr>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_view<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<ForgePr>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_create<'life0, 'async_trait>(
&'life0 self,
spec: PrCreate,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_merge<'life0, 'async_trait>(
&'life0 self,
number: u64,
strategy: MergeStrategy,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_mark_ready<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_close<'life0, 'async_trait>(
&'life0 self,
number: u64,
delete_branch: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn pr_checks<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<CiStatus>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn issue_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgeIssue>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn issue_view<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<ForgeIssue>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn issue_create<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
title: &'life1 str,
body: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn release_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgeRelease>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn release_view<'life0, 'life1, 'async_trait>(
&'life0 self,
tag: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ForgeRelease>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
The forge-agnostic common surface of Forge, as a trait — so a consumer can
hold a Box<dyn ForgeApi> / &dyn ForgeApi and code against the operations
without naming the ProcessRunner generic.
Every method mirrors the like-named inherent method on Forge.
Required Methods§
Sourcefn auth_status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn auth_status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::auth_status.
Sourcefn repo_view<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ForgeRepo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn repo_view<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<ForgeRepo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::repo_view.
Sourcefn pr_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgePr>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgePr>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_list.
Sourcefn pr_view<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<ForgePr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_view<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<ForgePr>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_view.
Sourcefn pr_create<'life0, 'async_trait>(
&'life0 self,
spec: PrCreate,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_create<'life0, 'async_trait>(
&'life0 self,
spec: PrCreate,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_create.
Sourcefn pr_merge<'life0, 'async_trait>(
&'life0 self,
number: u64,
strategy: MergeStrategy,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_merge<'life0, 'async_trait>(
&'life0 self,
number: u64,
strategy: MergeStrategy,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_merge.
Sourcefn pr_mark_ready<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_mark_ready<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_mark_ready.
Sourcefn pr_close<'life0, 'async_trait>(
&'life0 self,
number: u64,
delete_branch: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_close<'life0, 'async_trait>(
&'life0 self,
number: u64,
delete_branch: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_close.
Sourcefn pr_checks<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<CiStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pr_checks<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<CiStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::pr_checks.
Sourcefn issue_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgeIssue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn issue_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgeIssue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::issue_list.
Sourcefn issue_view<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<ForgeIssue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn issue_view<'life0, 'async_trait>(
&'life0 self,
number: u64,
) -> Pin<Box<dyn Future<Output = Result<ForgeIssue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::issue_view.
Sourcefn issue_create<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
title: &'life1 str,
body: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn issue_create<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
title: &'life1 str,
body: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
See Forge::issue_create.
Sourcefn release_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgeRelease>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn release_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ForgeRelease>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
See Forge::release_list.
Sourcefn release_view<'life0, 'life1, 'async_trait>(
&'life0 self,
tag: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ForgeRelease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn release_view<'life0, 'life1, 'async_trait>(
&'life0 self,
tag: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ForgeRelease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
See Forge::release_view.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".