Bech32String

Struct Bech32String 

Source
pub struct Bech32String { /* private fields */ }
Expand description

Validated Bech32/Bech32m string wrapper for secret data.

Implementations§

Source§

impl Bech32String

Source

pub fn new(s: String) -> Result<Self, &'static str>

Create a new Bech32String from a String, validating and normalizing it.

Accepts mixed-case input (normalized to lowercase for storage).

§Security Note

Invalid inputs are only securely zeroized if the zeroize feature is enabled. Without zeroize, rejected bytes may remain in memory until the String is dropped normally. Enable the zeroize feature for secure wiping of invalid inputs.

Source

pub fn is_bech32(&self) -> bool

Check if this is a Bech32 encoding.

Source

pub fn is_bech32m(&self) -> bool

Check if this is a Bech32m encoding.

Source

pub fn hrp(&self) -> Hrp

Get the Human-Readable Part (HRP) of the string.

Source

pub fn byte_len(&self) -> usize

Exact number of bytes the decoded payload represents (allocation-free).

Source

pub const fn len(&self) -> usize

Length of the encoded string (in characters).

Source

pub const fn is_empty(&self) -> bool

Whether the encoded string is empty.

Source

pub fn variant(&self) -> EncodingVariant

Get the detected encoding variant.

Source

pub fn into_bytes(self) -> Vec<u8>

Decode the validated Bech32/Bech32m string into raw bytes, consuming the wrapper.

Source§

impl Bech32String

Trait Implementations§

Source§

impl Debug for Bech32String

Debug implementation (always redacted).

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Bech32String

Available on crate feature ct-eq only.

Constant-time equality (prevents timing attacks when comparing encoded secrets).

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Bech32String

Equality implementation.

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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

Source§

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