Struct sn_client::ClientRegister

source ·
pub struct ClientRegister { /* private fields */ }
Expand description

Cached operations made to an offline Register instance are applied locally only, and accumulated until the user explicitly calls ‘sync’. The user can switch back to sync with the network for every op by invoking online API.

Implementations§

source§

impl ClientRegister

source

pub fn create(client: Client, meta: XorName) -> Self

Create a new Register Locally.

§Arguments
§Example
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = XorName::random(&mut rng);
// Here we create a ClientRegister
let register = ClientRegister::create(client.clone(), address);
source

pub fn create_with_addr(client: Client, addr: RegisterAddress) -> Self

Create a new Register locally with a specific address.

§Arguments
§Example
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = RegisterAddress::new(XorName::random(&mut rng), client.signer_pk());
// Here we create a ClientRegister
let register = ClientRegister::create_with_addr(client.clone(), address);
source

pub async fn create_online( client: Client, meta: XorName, wallet_client: &mut WalletClient, verify_store: bool, perms: Permissions ) -> Result<(Self, NanoTokens, NanoTokens), Error>

Create a new Register and send it to the Network.

§Arguments
  • ‘client’ - Client
  • ‘meta’ - XorName
  • ‘wallet_client’ - A borrowed mutable WalletClient
  • verify_store - A boolean to verify store. Set this to true for mandatory verification.
  • ‘perms’ - Permissions

Return type: Result<(Self, NanoTokens, NanoTokens)>

§Example
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = XorName::random(&mut rng);
let mut wallet_client = WalletClient::new(client.clone(), wallet);
let permissions = Permissions::default();
// Instantiate a new Register replica from a predefined address.
// The create_online function runs a [sync](ClientRegister::sync) internally.
let (client_register, mut total_cost, mut total_royalties) = ClientRegister::create_online(
        client,
        address,
        &mut wallet_client,
        false,
        permissions,
    ).await?;
source

pub fn address(&self) -> &RegisterAddress

Return type: RegisterAddress

§Example
// Instantiate a ClientRegister (i.e. with create_online)
let (client_register, mut cost, mut royalties) = ClientRegister::create_online//(...)
// From there we can use the address. In this example, we print it out:
println!("REGISTER_ADDRESS={}", client_register.address().to_hex());
source

pub fn owner(&self) -> PublicKey

Returns the Owner of the Register.

Return type: PublicKey

§Example
// Instantiate a ClientRegister (i.e. with create_online)
let (client_register, mut cost, mut royalties) = ClientRegister::create_online//(...)
// From there we can use the owner. In this example, we print it out:
println!("REGISTER_OWNER={}", client_register.owner().to_hex());
source

pub fn permissions(&self) -> &Permissions

Returns the Permissions of the Register.

Return type: Permissions

§Example
let mut wallet_client = WalletClient::new(client.clone(), wallet);
let permissions = Permissions::default();
// Instantiate a ClientRegister (i.e. with create_online)
let (client_register, mut cost, mut royalties) = ClientRegister::create_online//(...)
// From there we can use the permissions. In this example, we print it out:
let permissions = client_register.permissions();
println!("REGISTER_PERMS={:?}",permissions);
source

pub fn size(&self) -> u64

Return the number of items held in the register.

Return type: u64

§Example
// Instantiate a ClientRegister (i.e. with create_online)
let (client_register, mut cost, mut royalties) = ClientRegister::create_online//(...)
// From there we can see the size. In this example, we print it out:
println!("REGISTER_SIZE={}", client_register.size());
source

pub fn get(&self, hash: EntryHash) -> Result<&Entry, Error>

Return a value corresponding to the provided ‘hash’, if present.

source

pub fn read(&self) -> BTreeSet<(EntryHash, Entry)>

Read the last entry, or entries when there are branches, if the register is not empty.

Return type: BTreeSet<(EntryHash, Entry)>

§Example
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = XorName::random(&mut rng);
// Read as bytes into the ClientRegister instance
let register = ClientRegister::create(client.clone(), address).read();
source

pub fn write(&mut self, entry: &[u8]) -> Result<EntryHash, Error>

Write a new value onto the Register atop latest value. It returns an error if it finds branches in the content/entries; if it is required to merge/resolve the branches, invoke the write_merging_branches API.

§Arguments
  • ‘entry’ - u8 (i.e .as_bytes)
§Example
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = XorName::random(&mut rng);
let entry = "Register entry";
// Write as bytes into the ClientRegister instance
let mut register = ClientRegister::create(client.clone(), address).write(entry.as_bytes());
source

pub fn write_merging_branches( &mut self, entry: &[u8] ) -> Result<EntryHash, Error>

Write a new value onto the Register atop of the latest value. If there are any branches of content or entries, it automatically merges them. Leaving the new value as a single latest value on the Register. Note you can use the write API if you need to handle content/entries branches in a different way.

§Arguments
  • ‘entry’ - u8 (i.e .as_bytes)
§Example
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = XorName::random(&mut rng);
let entry = "entry_input_here";
let mut mutable_register = ClientRegister::create(client.clone(), address);
let message = "Register entry";
let register = mutable_register.write_merging_branches(message.as_bytes());
source

pub fn write_atop( &mut self, entry: &[u8], children: &BTreeSet<EntryHash> ) -> Result<EntryHash, Error>

Write a new value onto the Register atop the set of branches/entries referenced by the provided list of their corresponding entry hash. Note you can use write_merging_branches API instead if you want to write atop all exiting branches/entries.

§Arguments
§Example
let mut rng = rand::thread_rng();
let client = Client::new(SecretKey::random(), None, None, None).await?;
let address = XorName::random(&mut rng);
let mut mutable_register = ClientRegister::create(client.clone(), address);
let meta = "Register entry".as_bytes();
let register = mutable_register.write_atop(meta, &BTreeSet::default());
source

pub async fn sync( &mut self, wallet_client: &mut WalletClient, verify_store: bool, payment_info: Option<(Payment, PeerId)> ) -> Result<(NanoTokens, NanoTokens), Error>

Sync this Register with the replicas on the network. This will optionally verify the stored Register on the network is the same as the local one. If payment info is provided it won’t try to make the payment.

§Arguments
  • ‘wallet_client’ - WalletClient
  • ‘verify_store’ - Boolean

Return type: Result<(NanoTokens, NanoTokens)>

§Example
let address = XorName::random(&mut rng);
let client = Client::new(SecretKey::random(), None, None, None).await?;
let mut wallet_client = WalletClient::new(client.clone(), wallet);
// Run sync of a Client Register instance
let mut register =
            ClientRegister::create(client, address).sync(&mut wallet_client, true, None).await?;
source

pub async fn push(&mut self, verify_store: bool) -> Result<(), Error>

Push all operations made locally to the replicas of this Register on the network. This optionally verifies that the stored Register is the same as our local register.

§Arguments
  • ‘verify_store’ - Boolean
§Example
let address = XorName::random(&mut rng);
let client = Client::new(SecretKey::random(), None, None, None).await?;
// Pass the boolean value to the Client Register instance via .Push()
let mut binding = ClientRegister::create(client, address);
let register = binding.push(false);
source

pub async fn write_online( &mut self, entry: &[u8], verify_store: bool ) -> Result<(), Error>

Write a new value onto the Register atop of the latest value. It returns an error if it finds branches in the content / entries. If so, then it’s required to merge or resolve the branches. In that case, invoke the write_merging_branches API.

§Arguments
  • ‘entry’ - u8 (i.e .as_bytes)
  • ‘verify_store’ - Boolean
§Example
let address = XorName::random(&mut rng);
let client = Client::new(SecretKey::random(), None, None, None).await?;
let meta = "Register entry".as_bytes();
// Use of the 'write_online' example:
let mut binding = ClientRegister::create(client, address);
let register = binding.write_online(meta,false);
source

pub async fn write_merging_branches_online( &mut self, entry: &[u8], verify_store: bool ) -> Result<(), Error>

Write a new value onto the Register atop of the latest value. If there are branches of content/entries, it will automatically merge them. This will leave a single new value as the latest entry into the Register. Note that you can use the write API if you need to handle content/entries branches in a different way.

§Arguments
  • ‘entry’ - u8 (i.e .as_bytes)
  • ‘verify_store’ - Boolean
§Example
let address = XorName::random(&mut rng);
let client = Client::new(SecretKey::random(), None, None, None).await?;
let meta = "Entry".as_bytes();
// Use of the 'write_merging_branches_online':
let mut binding = ClientRegister::create(client, address);
let register = binding.write_merging_branches_online(meta,false);
source

pub async fn write_atop_online( &mut self, entry: &[u8], children: &BTreeSet<EntryHash>, verify_store: bool ) -> Result<(), Error>

Write a new value onto the Register atop the set of branches/entries referenced by the provided list to their corresponding entry hash. Note you can use write_merging_branches API if you want to write atop of all exiting branches/entries instead.

§Arguments
  • ‘entry’ - u8 (i.e .as_bytes)
  • ‘children’ - BTreeSet<EntryHash>
  • ‘verify_store’ - Boolean

Return type:

§Example
let mut rng = rand::thread_rng();
let address = XorName::random(&mut rng);
let client = Client::new(SecretKey::random(), None, None, None).await?;
let entry = "Entry".as_bytes();
let tree_set = BTreeSet::new();
// Use of the 'write_atop_online':
let mut binding = ClientRegister::create(client, address);
let mut register = binding.write_atop_online(entry,&tree_set,false);
source

pub fn merkle_reg(&self) -> &MerkleReg<Entry>

Access the underlying MerkleReg (e.g. for access to history) NOTE: This API is unstable and may be removed in the future

Trait Implementations§

source§

impl Clone for ClientRegister

source§

fn clone(&self) -> ClientRegister

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 Debug for ClientRegister

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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<'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> Conv for T

source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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<D> OwoColorize for D

source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
source§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
source§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
source§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
source§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
source§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
source§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
source§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
source§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
source§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
source§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
source§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
source§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
source§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
source§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
source§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
source§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
source§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
source§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
source§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
source§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
source§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
source§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
source§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
source§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
source§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
source§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
source§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
source§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
source§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
source§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
source§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
source§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
source§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
source§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
source§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
source§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
source§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
source§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
source§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
source§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
source§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
source§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
source§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
source§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
source§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
source§

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

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

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

§

type Output = T

Should always be Self
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

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

§

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> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

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

§

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>,

§

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