Struct farcaster_core::crypto::slip10::DerivationPath
source · pub struct DerivationPath(_);Available on crate feature
experimental only.Expand description
A BIP-32 derivation path.
Implementations§
source§impl DerivationPath
impl DerivationPath
sourcepub fn master() -> DerivationPath
pub fn master() -> DerivationPath
Returns derivation path for a master key (i.e. empty derivation path)
sourcepub fn is_master(&self) -> bool
pub fn is_master(&self) -> bool
Returns whether derivation path represents master key (i.e. it’s length
is empty). True for m path.
sourcepub fn child(&self, cn: ChildNumber) -> DerivationPath
pub fn child(&self, cn: ChildNumber) -> DerivationPath
Create a new DerivationPath that is a child of this one.
sourcepub fn into_child(self, cn: ChildNumber) -> DerivationPath
pub fn into_child(self, cn: ChildNumber) -> DerivationPath
Convert into a DerivationPath that is a child of this one.
sourcepub fn children_from(&self, cn: ChildNumber) -> DerivationPathIterator<'_>
pub fn children_from(&self, cn: ChildNumber) -> DerivationPathIterator<'_>
Get an Iterator over the children of this DerivationPath starting with the given ChildNumber.
sourcepub fn normal_children(&self) -> DerivationPathIterator<'_>
pub fn normal_children(&self) -> DerivationPathIterator<'_>
Get an Iterator over the unhardened children of this DerivationPath.
sourcepub fn hardened_children(&self) -> DerivationPathIterator<'_>
pub fn hardened_children(&self) -> DerivationPathIterator<'_>
Get an Iterator over the hardened children of this DerivationPath.
sourcepub fn extend<T>(&self, path: T) -> DerivationPathwhere
T: AsRef<[ChildNumber]>,
pub fn extend<T>(&self, path: T) -> DerivationPathwhere
T: AsRef<[ChildNumber]>,
Concatenate self with path and return the resulting new path.
use bitcoin::util::bip32::{DerivationPath, ChildNumber};
use std::str::FromStr;
let base = DerivationPath::from_str("m/42").unwrap();
let deriv_1 = base.extend(DerivationPath::from_str("m/0/1").unwrap());
let deriv_2 = base.extend(&[
ChildNumber::from_normal_idx(0).unwrap(),
ChildNumber::from_normal_idx(1).unwrap()
]);
assert_eq!(deriv_1, deriv_2);Trait Implementations§
source§impl AsRef<[ChildNumber]> for DerivationPath
impl AsRef<[ChildNumber]> for DerivationPath
source§fn as_ref(&self) -> &[ChildNumber]
fn as_ref(&self) -> &[ChildNumber]
Converts this type into a shared reference of the (usually inferred) input type.
source§impl Clone for DerivationPath
impl Clone for DerivationPath
source§fn clone(&self) -> DerivationPath
fn clone(&self) -> DerivationPath
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for DerivationPath
impl Debug for DerivationPath
source§impl Default for DerivationPath
impl Default for DerivationPath
source§fn default() -> DerivationPath
fn default() -> DerivationPath
Returns the “default value” for a type. Read more
source§impl<'de> Deserialize<'de> for DerivationPath
impl<'de> Deserialize<'de> for DerivationPath
source§fn deserialize<D>(
deserializer: D
) -> Result<DerivationPath, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<DerivationPath, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Display for DerivationPath
impl Display for DerivationPath
source§impl<'a> From<&'a [ChildNumber]> for DerivationPath
impl<'a> From<&'a [ChildNumber]> for DerivationPath
source§fn from(numbers: &'a [ChildNumber]) -> DerivationPath
fn from(numbers: &'a [ChildNumber]) -> DerivationPath
Converts to this type from the input type.
source§impl From<Vec<ChildNumber, Global>> for DerivationPath
impl From<Vec<ChildNumber, Global>> for DerivationPath
source§fn from(numbers: Vec<ChildNumber, Global>) -> DerivationPath
fn from(numbers: Vec<ChildNumber, Global>) -> DerivationPath
Converts to this type from the input type.
source§impl FromIterator<ChildNumber> for DerivationPath
impl FromIterator<ChildNumber> for DerivationPath
source§fn from_iter<T>(iter: T) -> DerivationPathwhere
T: IntoIterator<Item = ChildNumber>,
fn from_iter<T>(iter: T) -> DerivationPathwhere
T: IntoIterator<Item = ChildNumber>,
Creates a value from an iterator. Read more
source§impl FromStr for DerivationPath
impl FromStr for DerivationPath
source§impl Hash for DerivationPath
impl Hash for DerivationPath
source§impl<I> Index<I> for DerivationPathwhere
Vec<ChildNumber, Global>: Index<I>,
impl<I> Index<I> for DerivationPathwhere
Vec<ChildNumber, Global>: Index<I>,
source§impl Into<Vec<ChildNumber, Global>> for DerivationPath
impl Into<Vec<ChildNumber, Global>> for DerivationPath
source§impl<'a> IntoIterator for &'a DerivationPath
impl<'a> IntoIterator for &'a DerivationPath
§type Item = &'a ChildNumber
type Item = &'a ChildNumber
The type of the elements being iterated over.
§type IntoIter = Iter<'a, ChildNumber>
type IntoIter = Iter<'a, ChildNumber>
Which kind of iterator are we turning this into?
source§fn into_iter(self) -> <&'a DerivationPath as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a DerivationPath as IntoIterator>::IntoIter
Creates an iterator from a value. Read more
source§impl Ord for DerivationPath
impl Ord for DerivationPath
source§fn cmp(&self, other: &DerivationPath) -> Ordering
fn cmp(&self, other: &DerivationPath) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<DerivationPath> for DerivationPath
impl PartialEq<DerivationPath> for DerivationPath
source§fn eq(&self, other: &DerivationPath) -> bool
fn eq(&self, other: &DerivationPath) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl PartialOrd<DerivationPath> for DerivationPath
impl PartialOrd<DerivationPath> for DerivationPath
source§fn partial_cmp(&self, other: &DerivationPath) -> Option<Ordering>
fn partial_cmp(&self, other: &DerivationPath) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moresource§impl<'de> Serialize for DerivationPath
impl<'de> Serialize for DerivationPath
source§fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
source§impl StrictDecode for DerivationPath
impl StrictDecode for DerivationPath
source§fn strict_decode<D>(d: D) -> Result<DerivationPath, Error>where
D: Read,
fn strict_decode<D>(d: D) -> Result<DerivationPath, Error>where
D: Read,
Decode with the given
std::io::Read instance; must either
construct an instance or return implementation-specific error type.source§fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
Tries to deserialize byte array into the current type using
StrictDecode::strict_decode. If there are some data remains in the
buffer once deserialization is completed, fails with
Error::DataNotEntirelyConsumed. Use io::Cursor over the buffer and
StrictDecode::strict_decode to avoid such failures.source§fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
Reads data from file at
path and reconstructs object from it. Fails
with Error::DataNotEntirelyConsumed if file contains remaining
data after the object reconstruction.source§impl StrictEncode for DerivationPath
impl StrictEncode for DerivationPath
source§fn strict_encode<E>(&self, e: E) -> Result<usize, Error>where
E: Write,
fn strict_encode<E>(&self, e: E) -> Result<usize, Error>where
E: Write,
Encode with the given
std::io::Write instance; must return result
with either amount of bytes encoded – or implementation-specific
error type.source§fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
Serializes data as a byte array using
StrictEncode::strict_encode
functionimpl Eq for DerivationPath
impl StructuralEq for DerivationPath
impl StructuralPartialEq for DerivationPath
Auto Trait Implementations§
impl RefUnwindSafe for DerivationPath
impl Send for DerivationPath
impl Sync for DerivationPath
impl Unpin for DerivationPath
impl UnwindSafe for DerivationPath
Blanket Implementations§
source§impl<A, T> AsBits<T> for Awhere
A: AsRef<[T]>,
T: BitStore,
impl<A, T> AsBits<T> for Awhere
A: AsRef<[T]>,
T: BitStore,
§impl<T> Conv for T
impl<T> Conv for T
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
source§impl<T> IntoDerivationPath for Twhere
T: Into<DerivationPath>,
impl<T> IntoDerivationPath for Twhere
T: Into<DerivationPath>,
source§fn into_derivation_path(self) -> Result<DerivationPath, Error>
fn into_derivation_path(self) -> Result<DerivationPath, Error>
Convers a given type into a
DerivationPath with possible errorsource§impl<T> Mark for T
impl<T> Mark for T
source§fn mark<M>(self) -> <M as ChangeMark<T>>::Outwhere
M: ChangeMark<T>,
fn mark<M>(self) -> <M as ChangeMark<T>>::Outwhere
M: ChangeMark<T>,
Returns a new instance of the invocant that will be marked with
M. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows
self, then passes self.as_mut() into the pipe
function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.