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 fn decode_to_bytes(&self) -> Vec<u8>

decode_to_bytes: borrowing, allocates fresh Vec<u8> from decoded bytes

Source

pub fn variant(&self) -> EncodingVariant

Get the detected encoding variant.

Source

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

decode_into_bytes: consuming, decodes then zeroizes the wrapper immediately

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 ExposeSecret for Bech32String

Available on crate feature encoding-bech32 only.

Implementation for Bech32String - read-only access.

Encoding wrappers only provide read-only access to prevent invalidation of validation invariants. The Inner type is str since encoded strings are always valid UTF-8.

Source§

type Inner = str

The inner secret type being exposed. Read more
Source§

fn expose_secret(&self) -> &str

Expose the secret for read-only access.
Source§

fn len(&self) -> usize

Returns the length of the secret.
Source§

fn is_empty(&self) -> bool

Returns true if the secret is empty.
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