main.rs
//! Example showing localized progress bars
use std::sync::Arc;
use icu_locale::locale;
use l10n_embed::Context;
use l10n_embed_derive::localize;
use l10n_embed_interaction::{InteractionEnvironment, InteractionError, ProgressBar};
#[localize("examples/progress/*.ftl")]
enum ProgressMessage {
LongProgress,
ShortProgress,
Hello,
}
fn main() -> Result<(), InteractionError> {
let context = Arc::new(Context::new(locale!("en-US"), true));
let environment = InteractionEnvironment::new(context, true);
let long_progress = ProgressBar::new(&environment, ProgressMessage::LongProgress, 200);
let short_progress = ProgressBar::new(&environment, ProgressMessage::ShortProgress, 100);
for _ in 0..100 {
long_progress.increment(1);
short_progress.increment(1);
std::thread::sleep(std::time::Duration::from_millis(10));
}
short_progress.finish();
environment.emit_message(ProgressMessage::Hello)?;
for _ in 0..100 {
long_progress.increment(1);
std::thread::sleep(std::time::Duration::from_millis(10));
}
Ok(())
}