pub struct Postvalidated<E> { /* private fields */ }
Expand description
HeaderEntry
attribute identifying those that need to be validated.
The specification of a header entry identified by this discriminant will return a Result
.
§Example
This example adds the header name custom-header
and value custom:some-value
.
use unc_jsonrpc_client::{
header::{HeaderEntry, HeaderValue, Postvalidated},
methods, JsonRpcClient,
};
struct CustomValue(&'static str);
struct CustomHeader(CustomValue);
struct CustomError;
impl TryFrom<CustomValue> for HeaderValue {
type Error = CustomError;
fn try_from(v: CustomValue) -> Result<Self, Self::Error> {
HeaderValue::try_from(format!("custom:{}", v.0)).map_err(|_| CustomError)
}
}
impl HeaderEntry<Postvalidated<CustomError>> for CustomHeader {
type HeaderName = &'static str;
type HeaderValue = CustomValue;
fn header_name(&self) -> &Self::HeaderName {
&"custom-header"
}
fn header_pair(self) -> (Self::HeaderName, Self::HeaderValue) {
("custom-header", self.0)
}
}
let client = JsonRpcClient::connect("https://rpc.testnet.unc.org")
.header(CustomHeader(CustomValue("some-value")))?; // <- error handling here
Trait Implementations§
Source§impl<N, V> HeaderEntry<Postvalidated<<V as TryInto<HeaderValue>>::Error>> for (N, V)
impl<N, V> HeaderEntry<Postvalidated<<V as TryInto<HeaderValue>>::Error>> for (N, V)
type HeaderName = N
type HeaderValue = V
fn header_name(&self) -> &Self::HeaderName
fn header_pair(self) -> (Self::HeaderName, Self::HeaderValue)
Source§impl<T, E> HeaderEntryDiscriminant<T> for Postvalidated<E>where
T: HeaderEntry<Self>,
T::HeaderName: IntoHeaderName,
T::HeaderValue: TryInto<HeaderValue, Error = E>,
impl<T, E> HeaderEntryDiscriminant<T> for Postvalidated<E>where
T: HeaderEntry<Self>,
T::HeaderName: IntoHeaderName,
T::HeaderValue: TryInto<HeaderValue, Error = E>,
type Output = Result<JsonRpcClient, E>
fn apply(client: JsonRpcClient, entry: T) -> Self::Output
Auto Trait Implementations§
impl<E> Freeze for Postvalidated<E>
impl<E> RefUnwindSafe for Postvalidated<E>where
E: RefUnwindSafe,
impl<E> Send for Postvalidated<E>where
E: Send,
impl<E> Sync for Postvalidated<E>where
E: Sync,
impl<E> Unpin for Postvalidated<E>where
E: Unpin,
impl<E> UnwindSafe for Postvalidated<E>where
E: UnwindSafe,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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