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]
Converts this type into a shared reference of the (usually inferred) input type.
§impl Clone for DerivationPath
impl Clone for DerivationPath
§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 more§impl Debug for DerivationPath
impl Debug for DerivationPath
§impl Default for DerivationPath
impl Default for DerivationPath
§fn default() -> DerivationPath
fn default() -> DerivationPath
Returns the “default value” for a type. Read more
§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>,
Deserialize this value from the given Serde deserializer. Read more
§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
Converts to this type from the input type.
§impl From<DerivationPath> for Vec<ChildNumber>
impl From<DerivationPath> for Vec<ChildNumber>
§fn from(path: DerivationPath) -> Vec<ChildNumber>
fn from(path: DerivationPath) -> Vec<ChildNumber>
Converts to this type from the input type.
§impl From<Vec<ChildNumber>> for DerivationPath
impl From<Vec<ChildNumber>> for DerivationPath
§fn from(numbers: Vec<ChildNumber>) -> DerivationPath
fn from(numbers: Vec<ChildNumber>) -> DerivationPath
Converts to this type from the input type.
§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>,
Creates a value from an iterator. Read more
§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
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?
§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
§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,
Serialize this value into the given Serde serializer. Read more
impl Eq for DerivationPath
impl StructuralPartialEq for DerivationPath
Auto Trait Implementations§
impl Freeze for DerivationPath
impl RefUnwindSafe for DerivationPath
impl Send for DerivationPath
impl Sync for DerivationPath
impl Unpin for DerivationPath
impl UnwindSafe for DerivationPath
Blanket Implementations§
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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
Checks if this value is equivalent to the given key. Read more
§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>
Converts a given type into a
DerivationPath
with possible error