pub trait RequestableEntrypoint {
type Complete: Requestable;
// Required method
fn id(
&self,
) -> &<<Self as RequestableEntrypoint>::Complete as Requestable>::Identifier;
// Provided method
fn as_complete_or_request(
&self,
) -> impl Future<Output = Result<Arc<<Self as RequestableEntrypoint>::Complete>, Error<Self>>>
where Self: Sized { ... }
}