use fluent_bundle::{FluentBundle, FluentError, FluentResource}; use futures::Stream; use rustc_hash::FxHashSet; use std::borrow::Borrow; use unic_langid::LanguageIdentifier; use crate::types::ResourceId; pub type FluentBundleResult = Result, (FluentBundle, Vec)>; pub trait BundleIterator { fn prefetch_sync(&mut self) {} } #[async_trait::async_trait(?Send)] pub trait BundleStream { async fn prefetch_async(&mut self) {} } pub trait BundleGenerator { type Resource: Borrow; type LocalesIter: Iterator; type Iter: Iterator>; type Stream: Stream>; fn bundles_iter( &self, _locales: Self::LocalesIter, _res_ids: FxHashSet, ) -> Self::Iter { unimplemented!(); } fn bundles_stream( &self, _locales: Self::LocalesIter, _res_ids: FxHashSet, ) -> Self::Stream { unimplemented!(); } }