1111//! # Example:
1212//!
1313//! ```
14- //! use std::convert::TryFrom;
15- //!
1614//! use fluent_locale::negotiate_languages;
1715//! use fluent_locale::NegotiationStrategy;
18- //! use fluent_locale::convert_vec_str_to_langids ;
16+ //! use fluent_locale::convert_vec_str_to_langids_lossy ;
1917//! use unic_langid::LanguageIdentifier;
2018//!
21- //! let requested = convert_vec_str_to_langids (&["pl", "fr", "en-US"]);
22- //! let available = convert_vec_str_to_langids (&["it", "de", "fr", "en-GB", "en_US"]);
23- //! let default = LanguageIdentifier::try_from( "en-US").expect("Parsing langid failed.");
19+ //! let requested = convert_vec_str_to_langids_lossy (&["pl", "fr", "en-US"]);
20+ //! let available = convert_vec_str_to_langids_lossy (&["it", "de", "fr", "en-GB", "en_US"]);
21+ //! let default: LanguageIdentifier = "en-US".parse( ).expect("Parsing langid failed.");
2422//!
2523//! let supported = negotiate_languages(
2624//! &requested,
2927//! NegotiationStrategy::Filtering
3028//! );
3129//!
32- //! let expected = convert_vec_str_to_langids (&["fr", "en-US", "en-GB"]);
30+ //! let expected = convert_vec_str_to_langids_lossy (&["fr", "en-US", "en-GB"]);
3331//! assert_eq!(supported,
3432//! expected.iter().map(|t| t.as_ref()).collect::<Vec<&LanguageIdentifier>>());
3533//! ```
122120//!
123121
124122use std:: collections:: HashMap ;
125- use std:: convert:: TryInto ;
126123use unic_langid:: LanguageIdentifier ;
127124
128125mod likely_subtags;
@@ -136,8 +133,8 @@ pub enum NegotiationStrategy {
136133
137134pub fn filter_matches <
138135 ' a ,
139- R : ' a + Into < LanguageIdentifier > + PartialEq + Clone ,
140- A : ' a + Into < LanguageIdentifier > + PartialEq + Clone ,
136+ R : ' a + Into < LanguageIdentifier > + Clone ,
137+ A : ' a + Into < LanguageIdentifier > + Clone ,
141138> (
142139 requested : impl IntoIterator < Item = & ' a R > ,
143140 available : impl IntoIterator < Item = & ' a A > ,
@@ -316,7 +313,7 @@ pub fn filter_matches<
316313
317314pub fn negotiate_languages <
318315 ' a ,
319- R : ' a + Into < LanguageIdentifier > + PartialEq + Clone ,
316+ R : ' a + Into < LanguageIdentifier > + Clone ,
320317 A : ' a + Into < LanguageIdentifier > + PartialEq + Clone ,
321318> (
322319 requested : impl IntoIterator < Item = & ' a R > ,
@@ -338,6 +335,6 @@ pub fn negotiate_languages<
338335 supported
339336}
340337
341- pub fn convert_vec_str_to_langids ( input : & [ & str ] ) -> Vec < LanguageIdentifier > {
342- input. iter ( ) . filter_map ( |t| ( * t ) . try_into ( ) . ok ( ) ) . collect ( )
338+ pub fn convert_vec_str_to_langids_lossy ( input : & [ & str ] ) -> Vec < LanguageIdentifier > {
339+ input. iter ( ) . filter_map ( |t| t . parse ( ) . ok ( ) ) . collect ( )
343340}
0 commit comments