Struct WrappedNodeServer

Source
pub struct WrappedNodeServer { /* private fields */ }
Expand description

WrappedNodeServer enables us to quickly add customizations to the pure passthru of the cln_grpc::Server. In particular it implements the guarding against RPC commands that’d require a signature if no HSM is attached (that’d lock up our node) and providing RouteHints for disconnected and zeroconf channels too.

Implementations§

Source§

impl WrappedNodeServer

Source

pub async fn new(node_server: PluginNodeServer) -> Result<Self>

Trait Implementations§

Source§

impl Clone for WrappedNodeServer

Source§

fn clone(&self) -> WrappedNodeServer

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Node for WrappedNodeServer

Source§

fn invoice<'life0, 'async_trait>( &'life0 self, req: Request<InvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<InvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn getinfo<'life0, 'async_trait>( &'life0 self, r: Request<GetinfoRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<GetinfoResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_offers<'life0, 'async_trait>( &'life0 self, r: Request<ListoffersRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListoffersResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn offer<'life0, 'async_trait>( &'life0 self, r: Request<OfferRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<OfferResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn bkpr_list_income<'life0, 'async_trait>( &'life0 self, r: Request<BkprlistincomeRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<BkprlistincomeResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_peers<'life0, 'async_trait>( &'life0 self, r: Request<ListpeersRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListpeersResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_peer_channels<'life0, 'async_trait>( &'life0 self, r: Request<ListpeerchannelsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListpeerchannelsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_closed_channels<'life0, 'async_trait>( &'life0 self, r: Request<ListclosedchannelsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListclosedchannelsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_funds<'life0, 'async_trait>( &'life0 self, r: Request<ListfundsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListfundsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn decode_pay<'life0, 'async_trait>( &'life0 self, r: Request<DecodepayRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DecodepayResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn decode<'life0, 'async_trait>( &'life0 self, r: Request<DecodeRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DecodeResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn sign_invoice<'life0, 'async_trait>( &'life0 self, r: Request<SigninvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SigninvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pre_approve_keysend<'life0, 'async_trait>( &'life0 self, r: Request<PreapprovekeysendRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<PreapprovekeysendResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pre_approve_invoice<'life0, 'async_trait>( &'life0 self, r: Request<PreapproveinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<PreapproveinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_custom_msg<'life0, 'async_trait>( &'life0 self, r: Request<SendcustommsgRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SendcustommsgResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_pay<'life0, 'async_trait>( &'life0 self, r: Request<SendpayRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SendpayResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_channels<'life0, 'async_trait>( &'life0 self, r: Request<ListchannelsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListchannelsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn add_gossip<'life0, 'async_trait>( &'life0 self, r: Request<AddgossipRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<AddgossipResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn auto_clean_invoice<'life0, 'async_trait>( &'life0 self, r: Request<AutocleaninvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<AutocleaninvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn check_message<'life0, 'async_trait>( &'life0 self, r: Request<CheckmessageRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<CheckmessageResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn close<'life0, 'async_trait>( &'life0 self, r: Request<CloseRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<CloseResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn connect_peer<'life0, 'async_trait>( &'life0 self, r: Request<ConnectRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ConnectResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn create_invoice<'life0, 'async_trait>( &'life0 self, r: Request<CreateinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<CreateinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn datastore<'life0, 'async_trait>( &'life0 self, r: Request<DatastoreRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DatastoreResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn create_onion<'life0, 'async_trait>( &'life0 self, r: Request<CreateonionRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<CreateonionResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn del_datastore<'life0, 'async_trait>( &'life0 self, r: Request<DeldatastoreRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DeldatastoreResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn del_expired_invoice<'life0, 'async_trait>( &'life0 self, r: Request<DelexpiredinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DelexpiredinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn del_invoice<'life0, 'async_trait>( &'life0 self, r: Request<DelinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DelinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_datastore<'life0, 'async_trait>( &'life0 self, r: Request<ListdatastoreRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListdatastoreResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_invoices<'life0, 'async_trait>( &'life0 self, r: Request<ListinvoicesRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListinvoicesResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_onion<'life0, 'async_trait>( &'life0 self, r: Request<SendonionRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SendonionResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_send_pays<'life0, 'async_trait>( &'life0 self, r: Request<ListsendpaysRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListsendpaysResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_transactions<'life0, 'async_trait>( &'life0 self, r: Request<ListtransactionsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListtransactionsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn pay<'life0, 'async_trait>( &'life0 self, r: Request<PayRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<PayResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_nodes<'life0, 'async_trait>( &'life0 self, r: Request<ListnodesRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListnodesResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn wait_any_invoice<'life0, 'async_trait>( &'life0 self, r: Request<WaitanyinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<WaitanyinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn wait_invoice<'life0, 'async_trait>( &'life0 self, r: Request<WaitinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<WaitinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn wait_send_pay<'life0, 'async_trait>( &'life0 self, r: Request<WaitsendpayRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<WaitsendpayResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn wait_block_height<'life0, 'async_trait>( &'life0 self, r: Request<WaitblockheightRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<WaitblockheightResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn new_addr<'life0, 'async_trait>( &'life0 self, r: Request<NewaddrRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<NewaddrResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn withdraw<'life0, 'async_trait>( &'life0 self, r: Request<WithdrawRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<WithdrawResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn key_send<'life0, 'async_trait>( &'life0 self, r: Request<KeysendRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<KeysendResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn fund_psbt<'life0, 'async_trait>( &'life0 self, r: Request<FundpsbtRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<FundpsbtResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn send_psbt<'life0, 'async_trait>( &'life0 self, r: Request<SendpsbtRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SendpsbtResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn sign_psbt<'life0, 'async_trait>( &'life0 self, r: Request<SignpsbtRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SignpsbtResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn utxo_psbt<'life0, 'async_trait>( &'life0 self, r: Request<UtxopsbtRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<UtxopsbtResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn tx_discard<'life0, 'async_trait>( &'life0 self, r: Request<TxdiscardRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<TxdiscardResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn tx_prepare<'life0, 'async_trait>( &'life0 self, r: Request<TxprepareRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<TxprepareResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn tx_send<'life0, 'async_trait>( &'life0 self, r: Request<TxsendRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<TxsendResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn disconnect<'life0, 'async_trait>( &'life0 self, r: Request<DisconnectRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DisconnectResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn feerates<'life0, 'async_trait>( &'life0 self, r: Request<FeeratesRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<FeeratesResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn fund_channel<'life0, 'async_trait>( &'life0 self, r: Request<FundchannelRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<FundchannelResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn get_route<'life0, 'async_trait>( &'life0 self, r: Request<GetrouteRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<GetrouteResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_forwards<'life0, 'async_trait>( &'life0 self, r: Request<ListforwardsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListforwardsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_pays<'life0, 'async_trait>( &'life0 self, r: Request<ListpaysRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListpaysResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn ping<'life0, 'async_trait>( &'life0 self, r: Request<PingRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<PingResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn set_channel<'life0, 'async_trait>( &'life0 self, r: Request<SetchannelRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SetchannelResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn sign_message<'life0, 'async_trait>( &'life0 self, r: Request<SignmessageRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<SignmessageResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn stop<'life0, 'async_trait>( &'life0 self, r: Request<StopRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<StopResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn static_backup<'life0, 'async_trait>( &'life0 self, r: Request<StaticbackupRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<StaticbackupResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn list_htlcs<'life0, 'async_trait>( &'life0 self, r: Request<ListhtlcsRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<ListhtlcsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn datastore_usage<'life0, 'async_trait>( &'life0 self, r: Request<DatastoreusageRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<DatastoreusageResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn fetch_invoice<'life0, 'async_trait>( &'life0 self, request: Request<FetchinvoiceRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<FetchinvoiceResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn wait<'life0, 'async_trait>( &'life0 self, request: Request<WaitRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<WaitResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

impl Node for WrappedNodeServer

Source§

type StreamCustommsgStream = ReceiverStream<Result<Custommsg, Status>>

Server streaming response type for the StreamCustommsg method.
Source§

type StreamHsmRequestsStream = ReceiverStream<Result<HsmRequest, Status>>

Server streaming response type for the StreamHsmRequests method.
Source§

type StreamLogStream = ReceiverStream<Result<LogEntry, Status>>

Server streaming response type for the StreamLog method.
Source§

type StreamIncomingStream = ReceiverStream<Result<IncomingPayment, Status>>

Server streaming response type for the StreamIncoming method.
Source§

fn stream_incoming<'life0, 'async_trait>( &'life0 self, req: Request<StreamIncomingFilter>, ) -> Pin<Box<dyn Future<Output = Result<Response<Self::StreamIncomingStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stream incoming payments Read more
Source§

fn respond_hsm_request<'life0, 'async_trait>( &'life0 self, req: Request<HsmResponse>, ) -> Pin<Box<dyn Future<Output = Result<Response<Empty>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn stream_hsm_requests<'life0, 'async_trait>( &'life0 self, req: Request<Empty>, ) -> Pin<Box<dyn Future<Output = Result<Response<Self::StreamHsmRequestsStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

////////////////////////////// HSM Messages //////////////////////// Read more
Source§

fn stream_log<'life0, 'async_trait>( &'life0 self, req: Request<StreamLogRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<Self::StreamLogStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stream the logs as they are produced by the node Read more
Source§

fn stream_custommsg<'life0, 'async_trait>( &'life0 self, req: Request<StreamCustommsgRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<Self::StreamCustommsgStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Listen for incoming custommsg messages from peers. Read more
Source§

fn configure<'life0, 'async_trait>( &'life0 self, request: Request<GlConfig>, ) -> Pin<Box<dyn Future<Output = Result<Response<Empty>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn trampoline_pay<'life0, 'async_trait>( &'life0 self, request: Request<TrampolinePayRequest>, ) -> Pin<Box<dyn Future<Output = Result<Response<TrampolinePayResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> AnySync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Source§

impl<T> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Source§

fn type_name(&self) -> &'static str

Gets the type name of self
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: AsAny + ?Sized,

Source§

fn is<T>(&self) -> bool
where T: AsAny,

Returns true if the boxed type is the same as T. Read more
Source§

fn downcast_ref<T>(&self) -> Option<&T>
where T: AsAny,

Forward to the method defined on the type Any.
Source§

fn downcast_mut<T>(&mut self) -> Option<&mut T>
where T: AsAny,

Forward to the method defined on the type Any.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more