pub trait FarmerRpcApiServer:
Sized
+ Send
+ Sync
+ 'static {
// Required methods
fn get_farmer_app_info(&self) -> Result<FarmerAppInfo, Error>;
fn submit_solution_response(
&self,
solution_response: SolutionResponse,
) -> Result<(), Error>;
fn submit_block_seal(
&self,
block_seal: BlockSealResponse,
) -> Result<(), Error>;
fn super_segment_headers<'life0, 'async_trait>(
&'life0 self,
super_segment_indices: Vec<SuperSegmentIndex>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<SuperSegmentHeader>>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn last_super_segment_headers<'life0, 'async_trait>(
&'life0 self,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<SuperSegmentHeader>>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn super_segment_root_for_segment_index<'life0, 'async_trait>(
&'life0 self,
segment_index: SegmentIndex,
) -> Pin<Box<dyn Future<Output = Result<Option<SuperSegmentRoot>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn piece<'life0, 'async_trait>(
&'life0 self,
piece_index: PieceIndex,
) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn update_shard_membership_info<'life0, 'life1, 'async_trait>(
&'life0 self,
ext: &'life1 Extensions,
info: Vec<FarmerShardMembershipInfo>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn subscribe_slot_info<'life0, 'async_trait>(
&'life0 self,
subscription_sink: PendingSubscriptionSink,
) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn subscribe_block_seal<'life0, 'async_trait>(
&'life0 self,
subscription_sink: PendingSubscriptionSink,
) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn subscribe_new_super_segment_header<'life0, 'async_trait>(
&'life0 self,
subscription_sink: PendingSubscriptionSink,
) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided method
fn into_rpc(self) -> RpcModule<Self> { ... }
}Expand description
Server trait implementation for the FarmerRpcApi RPC API.
Required Methods§
Sourcefn get_farmer_app_info(&self) -> Result<FarmerAppInfo, Error>
fn get_farmer_app_info(&self) -> Result<FarmerAppInfo, Error>
Get metadata necessary for farmer operation
fn submit_solution_response( &self, solution_response: SolutionResponse, ) -> Result<(), Error>
fn submit_block_seal(&self, block_seal: BlockSealResponse) -> Result<(), Error>
fn super_segment_headers<'life0, 'async_trait>(
&'life0 self,
super_segment_indices: Vec<SuperSegmentIndex>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<SuperSegmentHeader>>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn last_super_segment_headers<'life0, 'async_trait>(
&'life0 self,
limit: u32,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<SuperSegmentHeader>>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn super_segment_root_for_segment_index<'life0, 'async_trait>(
&'life0 self,
segment_index: SegmentIndex,
) -> Pin<Box<dyn Future<Output = Result<Option<SuperSegmentRoot>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn piece<'life0, 'async_trait>(
&'life0 self,
piece_index: PieceIndex,
) -> Pin<Box<dyn Future<Output = Result<Option<Piece>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_shard_membership_info<'life0, 'life1, 'async_trait>(
&'life0 self,
ext: &'life1 Extensions,
info: Vec<FarmerShardMembershipInfo>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sourcefn subscribe_slot_info<'life0, 'async_trait>(
&'life0 self,
subscription_sink: PendingSubscriptionSink,
) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn subscribe_slot_info<'life0, 'async_trait>(
&'life0 self,
subscription_sink: PendingSubscriptionSink,
) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Slot info subscription
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".