pub trait BuildProvider: Send + Sync {
// Required methods
fn id(&self) -> &str;
fn capabilities(&self) -> &ProviderCapabilities;
fn handshake(
&self,
request: HandshakeRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, HandshakeResponse>;
fn doctor(
&self,
request: ProviderDoctorRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, ProviderDoctorReport>;
fn submit(
&self,
request: IosDeviceBuildRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, JobHandle>;
fn events(
&self,
request: EventRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, EventPage>;
// Provided methods
fn cancel(
&self,
_request: CancellationRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, CancellationAck> { ... }
fn list_artifacts(
&self,
_request: ArtifactListRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, Vec<ArtifactManifest>> { ... }
fn download_artifact(
&self,
_request: ArtifactDownloadRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, ArtifactDownloadResult> { ... }
fn cleanup(
&self,
_request: CleanupRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, CleanupConfirmation> { ... }
}Expand description
Object-safe asynchronous provider interface without a required executor or runtime.
Implementations return boxed futures and must not report success until the corresponding
provider operation is confirmed. Optional methods return unsupported_capability by default.
Required Methods§
Sourcefn capabilities(&self) -> &ProviderCapabilities
fn capabilities(&self) -> &ProviderCapabilities
Capabilities active for this provider configuration.
Sourcefn handshake(
&self,
request: HandshakeRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, HandshakeResponse>
fn handshake( &self, request: HandshakeRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, HandshakeResponse>
Negotiate protocol and worker compatibility.
Sourcefn doctor(
&self,
request: ProviderDoctorRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, ProviderDoctorReport>
fn doctor( &self, request: ProviderDoctorRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, ProviderDoctorReport>
Inspect provider, worker, and optional signing readiness.
Sourcefn submit(
&self,
request: IosDeviceBuildRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, JobHandle>
fn submit( &self, request: IosDeviceBuildRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, JobHandle>
Submit one declarative physical-iPhone build.
Sourcefn events(
&self,
request: EventRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, EventPage>
fn events( &self, request: EventRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, EventPage>
Retrieve a bounded ordered page of events.
Provided Methods§
Sourcefn cancel(
&self,
_request: CancellationRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, CancellationAck>
fn cancel( &self, _request: CancellationRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, CancellationAck>
Request cancellation of an active job.
Sourcefn list_artifacts(
&self,
_request: ArtifactListRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, Vec<ArtifactManifest>>
fn list_artifacts( &self, _request: ArtifactListRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, Vec<ArtifactManifest>>
List verified artifact manifests for a job.
Sourcefn download_artifact(
&self,
_request: ArtifactDownloadRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, ArtifactDownloadResult>
fn download_artifact( &self, _request: ArtifactDownloadRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, ArtifactDownloadResult>
Download and independently verify one artifact.
Sourcefn cleanup(
&self,
_request: CleanupRequest,
cancellation: CancellationToken,
) -> ProviderFuture<'_, CleanupConfirmation>
fn cleanup( &self, _request: CleanupRequest, cancellation: CancellationToken, ) -> ProviderFuture<'_, CleanupConfirmation>
Delete provider-owned workspace, signing material, and optional retained artifacts.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".