Enum MnemonicLanguage

Source
pub enum MnemonicLanguage {
    English = 0,
    SimplifiedChinese = 1,
    TraditionalChinese = 2,
    Czech = 3,
    French = 4,
    Italian = 5,
    Japanese = 6,
    Korean = 7,
    Portuguese = 8,
    Spanish = 9,
}
Expand description

The language used for BIP-39/BIP-44 mnemonic seed phrases in a wallet.

MnemonicLanguage represents the human language in which a wallet’s recovery seed phrase is expressed. Zcash wallets, like many cryptocurrency wallets, use mnemonic phrases (typically 12, 18, or 24 words) as a human-readable backup for the wallet’s seed material.

§Zcash Concept Relation

Zcash wallets commonly use BIP-39 mnemonics as the basis for hierarchical deterministic (HD) wallet generation. The language of the mnemonic matters because:

  • Each language has its own standardized wordlist with 2048 specific words
  • Words must be from the same language to be valid for a given mnemonic
  • The language determines which wordlist is used for validation and generation

Zcash wallets typically follow the same standards as Bitcoin for mnemonic implementation, supporting multiple languages for wider accessibility.

§Data Preservation

During wallet migration, preserving the mnemonic language is important for:

  • Correctly interpreting any stored mnemonic phrases
  • Maintaining consistent wallet recovery procedures
  • Ensuring users can recover funds using their preferred language

§Examples

// Create a language identifier from a numeric value
let language = MnemonicLanguage::from_u32(0)?;
assert_eq!(language, MnemonicLanguage::English);

// Get the language name
assert_eq!(language.name(), "English");

// Languages can be displayed as strings
println!("Mnemonic language: {}", language); // Outputs "Mnemonic language: English"

Variants§

§

English = 0

English wordlist (the most commonly used)

§

SimplifiedChinese = 1

Simplified Chinese wordlist

§

TraditionalChinese = 2

Traditional Chinese wordlist

§

Czech = 3

Czech wordlist

§

French = 4

French wordlist

§

Italian = 5

Italian wordlist

§

Japanese = 6

Japanese wordlist

§

Korean = 7

Korean wordlist

§

Portuguese = 8

Portuguese wordlist

§

Spanish = 9

Spanish wordlist

Implementations§

Source§

impl MnemonicLanguage

Source

pub fn from_u32(value: u32) -> Result<Self>

Creates a MnemonicLanguage from a numeric identifier.

This method converts a raw numeric value into the corresponding language enum variant. Zcash wallets typically store the language as a numeric value in their configuration or database.

§Arguments
  • value - The numeric identifier for the language (0-9)
§Returns

A Result containing the MnemonicLanguage if the value is valid, or an error if the value doesn’t correspond to a supported language.

§Examples
// Create English (most common) language
let english = MnemonicLanguage::from_u32(0)?;

// Create French language
let french = MnemonicLanguage::from_u32(4)?;

// Invalid value results in error
let result = MnemonicLanguage::from_u32(99);
assert!(result.is_err());
Source

pub fn name(&self) -> &'static str

Returns the string name of the mnemonic language.

This method returns the canonical name of the language as a static string, which is useful for display purposes or when translating between numeric and human-readable representations.

§Returns

A static string containing the name of the language.

§Examples
let language = MnemonicLanguage::English;
assert_eq!(language.name(), "English");

let language = MnemonicLanguage::Japanese;
assert_eq!(language.name(), "Japanese");

Trait Implementations§

Source§

impl Clone for MnemonicLanguage

Source§

fn clone(&self) -> MnemonicLanguage

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MnemonicLanguage

Formats the mnemonic language for debugging output

Source§

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

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

impl Display for MnemonicLanguage

Formats the mnemonic language as a human-readable string

Source§

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

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

impl From<MnemonicLanguage> for CBOR

Source§

fn from(value: MnemonicLanguage) -> Self

Converts to this type from the input type.
Source§

impl From<MnemonicLanguage> for Envelope

Source§

fn from(value: MnemonicLanguage) -> Self

Converts to this type from the input type.
Source§

impl From<MnemonicLanguage> for String

Source§

fn from(value: MnemonicLanguage) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for MnemonicLanguage

Source§

fn eq(&self, other: &MnemonicLanguage) -> 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 TryFrom<CBOR> for MnemonicLanguage

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(cbor: CBOR) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<Envelope> for MnemonicLanguage

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(envelope: Envelope) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<String> for MnemonicLanguage

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: String) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Copy for MnemonicLanguage

Source§

impl StructuralPartialEq for MnemonicLanguage

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> CBORDecodable for T
where T: TryFrom<CBOR, Error = Error>,

Source§

fn try_from_cbor(cbor: &CBOR) -> Result<Self, Error>

Source§

impl<T> CBOREncodable for T
where T: Into<CBOR> + Clone,

Source§

fn to_cbor(&self) -> CBOR

Converts this value to a CBOR object. Read more
Source§

fn to_cbor_data(&self) -> Vec<u8>

Converts this value directly to binary CBOR data. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> EnvelopeEncodable for T
where T: Into<Envelope> + Clone,

Source§

fn into_envelope(self) -> Envelope

Converts the value into an envelope by using its Into<Envelope> implementation.

Source§

fn to_envelope(&self) -> Envelope
where Self: Clone,

Converts a reference to this value into a Gordian Envelope. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> CBORCodable for T

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T