Struct DerivationPath
pub struct DerivationPath(/* private fields */);
Expand description
A BIP-32 derivation path.
Implementations§
§impl DerivationPath
impl DerivationPath
pub fn master() -> DerivationPath
pub fn master() -> DerivationPath
Returns derivation path for a master key (i.e. empty derivation path)
pub 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.
pub fn child(&self, cn: ChildNumber) -> DerivationPath
pub fn child(&self, cn: ChildNumber) -> DerivationPath
Create a new DerivationPath that is a child of this one.
pub 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.
pub 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.
pub fn normal_children(&self) -> DerivationPathIterator<'_> ⓘ
pub fn normal_children(&self) -> DerivationPathIterator<'_> ⓘ
Get an Iterator over the unhardened children of this DerivationPath.
pub fn hardened_children(&self) -> DerivationPathIterator<'_> ⓘ
pub fn hardened_children(&self) -> DerivationPathIterator<'_> ⓘ
Get an Iterator over the hardened children of this DerivationPath.
pub 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::bip32::{DerivationPath, ChildNumber};
use std::str::FromStr;
let base = DerivationPath::from_str("m/42").unwrap();
let deriv_1 = base.extend(DerivationPath::from_str("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);
pub fn to_u32_vec(&self) -> Vec<u32>
pub fn to_u32_vec(&self) -> Vec<u32>
Returns the derivation path as a vector of u32 integers. Unhardened elements are copied as is. 0x80000000 is added to the hardened elements.
use bitcoin::bip32::DerivationPath;
use std::str::FromStr;
let path = DerivationPath::from_str("m/84'/0'/0'/0/1").unwrap();
const HARDENED: u32 = 0x80000000;
assert_eq!(path.to_u32_vec(), vec![84 + HARDENED, HARDENED, HARDENED, 0, 1]);
Trait Implementations§
§impl AsRef<[ChildNumber]> for DerivationPath
impl AsRef<[ChildNumber]> for DerivationPath
§fn as_ref(&self) -> &[ChildNumber]
fn as_ref(&self) -> &[ChildNumber]
§impl Clone for DerivationPath
impl Clone for DerivationPath
§fn clone(&self) -> DerivationPath
fn clone(&self) -> DerivationPath
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for DerivationPath
impl Debug for DerivationPath
§impl Default for DerivationPath
impl Default for DerivationPath
§fn default() -> DerivationPath
fn default() -> DerivationPath
§impl<'de> Deserialize<'de> for DerivationPath
impl<'de> Deserialize<'de> for DerivationPath
§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>,
§impl Display for DerivationPath
impl Display for DerivationPath
§impl<'a> From<&'a [ChildNumber]> for DerivationPath
impl<'a> From<&'a [ChildNumber]> for DerivationPath
§fn from(numbers: &'a [ChildNumber]) -> DerivationPath
fn from(numbers: &'a [ChildNumber]) -> DerivationPath
§impl From<DerivationPath> for Vec<ChildNumber>
impl From<DerivationPath> for Vec<ChildNumber>
§fn from(path: DerivationPath) -> Vec<ChildNumber>
fn from(path: DerivationPath) -> Vec<ChildNumber>
§impl From<Vec<ChildNumber>> for DerivationPath
impl From<Vec<ChildNumber>> for DerivationPath
§fn from(numbers: Vec<ChildNumber>) -> DerivationPath
fn from(numbers: Vec<ChildNumber>) -> DerivationPath
§impl FromIterator<ChildNumber> for DerivationPath
impl FromIterator<ChildNumber> for DerivationPath
§fn from_iter<T>(iter: T) -> DerivationPathwhere
T: IntoIterator<Item = ChildNumber>,
fn from_iter<T>(iter: T) -> DerivationPathwhere
T: IntoIterator<Item = ChildNumber>,
§impl FromStr for DerivationPath
impl FromStr for DerivationPath
§impl Hash for DerivationPath
impl Hash for DerivationPath
§impl<I> Index<I> for DerivationPath
impl<I> Index<I> for DerivationPath
§impl<'a> IntoIterator for &'a DerivationPath
impl<'a> IntoIterator for &'a DerivationPath
§type Item = &'a ChildNumber
type Item = &'a ChildNumber
§type IntoIter = Iter<'a, ChildNumber>
type IntoIter = Iter<'a, ChildNumber>
§fn into_iter(self) -> <&'a DerivationPath as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a DerivationPath as IntoIterator>::IntoIter
§impl Ord for DerivationPath
impl Ord for DerivationPath
§impl PartialEq for DerivationPath
impl PartialEq for DerivationPath
§impl PartialOrd for DerivationPath
impl PartialOrd for DerivationPath
§impl Serialize for DerivationPath
impl Serialize for DerivationPath
§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,
impl Eq for DerivationPath
impl StructuralPartialEq for DerivationPath
Auto Trait Implementations§
impl Freeze for DerivationPath
impl Send for DerivationPath
impl Sync for DerivationPath
impl RefUnwindSafe for DerivationPath
impl Unpin for DerivationPath
impl UnwindSafe for DerivationPath
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> IntoDerivationPath for Twhere
T: Into<DerivationPath>,
impl<T> IntoDerivationPath for Twhere
T: Into<DerivationPath>,
§fn into_derivation_path(self) -> Result<DerivationPath, Error>
fn into_derivation_path(self) -> Result<DerivationPath, Error>
DerivationPath
with possible errorSource§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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.