Skip to main content

NormalizedParsedCatalog

Struct NormalizedParsedCatalog 

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

Parsed catalog with fast key-based lookup helpers.

Implementations§

Source§

impl NormalizedParsedCatalog

Source

pub fn compile( &self, options: &CompileCatalogOptions<'_>, ) -> Result<CompiledCatalog, ApiError>

Compiles the normalized catalog into a runtime-oriented lookup map.

Compiled keys are derived from the canonical gettext identity (msgctxt + msgid) using the selected built-in key strategy. The default configuration keeps translations as-is without filling missing values from the source text.

§Errors

Returns ApiError::InvalidArguments when source fallback is enabled without a source_locale, or ApiError::Conflict when two source messages compile to the same derived key.

use ferrocat_po::{CompileCatalogOptions, ParseCatalogOptions, parse_catalog};

let parsed = parse_catalog(ParseCatalogOptions {
    content: "msgid \"Hello\"\nmsgstr \"Hallo\"\n",
    source_locale: "en",
    locale: Some("de"),
    ..ParseCatalogOptions::default()
})?;
let normalized = parsed.into_normalized_view()?;
let compiled = normalized.compile(&CompileCatalogOptions::default())?;

assert_eq!(compiled.len(), 1);
let (_, message) = compiled.iter().next().expect("compiled message");
assert_eq!(message.source_key.msgid, "Hello");
Source§

impl NormalizedParsedCatalog

Source

pub const fn parsed_catalog(&self) -> &ParsedCatalog

Returns the underlying parsed catalog.

Source

pub fn into_parsed_catalog(self) -> ParsedCatalog

Consumes the normalized view and returns the underlying parsed catalog.

Source

pub fn get(&self, key: &CatalogMessageKey) -> Option<&CatalogMessage>

Returns a message by key.

Source

pub fn contains_key(&self, key: &CatalogMessageKey) -> bool

Returns true if a message for key exists.

Source

pub fn message_count(&self) -> usize

Returns the number of indexed messages.

Source

pub fn iter( &self, ) -> impl Iterator<Item = (&CatalogMessageKey, &CatalogMessage)>

Iterates over all indexed messages in key order.

Source

pub fn effective_translation( &self, key: &CatalogMessageKey, ) -> Option<EffectiveTranslationRef<'_>>

Returns the effective translation for key, if present.

Source

pub fn effective_translation_with_source_fallback( &self, key: &CatalogMessageKey, source_locale: &str, ) -> Option<EffectiveTranslation>

Returns the effective translation and fills empty source-locale values from the source text when appropriate.

Trait Implementations§

Source§

impl Clone for NormalizedParsedCatalog

Source§

fn clone(&self) -> NormalizedParsedCatalog

Returns a duplicate 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 NormalizedParsedCatalog

Source§

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

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

impl PartialEq for NormalizedParsedCatalog

Source§

fn eq(&self, other: &NormalizedParsedCatalog) -> 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 NormalizedParsedCatalog

Source§

impl StructuralPartialEq for NormalizedParsedCatalog

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> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> 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, 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<T> ErasedDestructor for T
where T: 'static,