Change method name of Preference to better conform to standards
Signed-off-by: Ben Aaron Goldberg <ben@benaaron.dev>
This commit is contained in:
parent
2dfa2c2f92
commit
87583fc383
|
@ -46,7 +46,7 @@ pub trait Preference {
|
||||||
/// crucial step to randomly selecting a pronoun set based on a user's preferences, as
|
/// crucial step to randomly selecting a pronoun set based on a user's preferences, as
|
||||||
/// any selection is done by using a [`WeightedTable`]. All preference versions must
|
/// any selection is done by using a [`WeightedTable`]. All preference versions must
|
||||||
/// implement this method.
|
/// implement this method.
|
||||||
fn into_weighted_table<'a>(&self, settings: &'a InstanceSettings) -> Result<WeightedTable<&'a Pronoun>, ParseError>;
|
fn create_weighted_table<'a>(&self, settings: &'a InstanceSettings) -> Result<WeightedTable<&'a Pronoun>, ParseError>;
|
||||||
|
|
||||||
/// Parse a given prefstring, after it's extraction from base64
|
/// Parse a given prefstring, after it's extraction from base64
|
||||||
///
|
///
|
||||||
|
@ -63,7 +63,7 @@ pub trait Preference {
|
||||||
/// This should be done in accordance with the [prefstring specification][1].
|
/// This should be done in accordance with the [prefstring specification][1].
|
||||||
///
|
///
|
||||||
/// [1]: https://fem.mint.lgbt/Emi/PronounsToday/raw/branch/main/doc/User-Preference-String-Spec.txt
|
/// [1]: https://fem.mint.lgbt/Emi/PronounsToday/raw/branch/main/doc/User-Preference-String-Spec.txt
|
||||||
fn into_prefstring_bytes(&self) -> Vec<u8>;
|
fn as_prefstring_bytes(&self) -> Vec<u8>;
|
||||||
|
|
||||||
/// Parse a base64 prefstring
|
/// Parse a base64 prefstring
|
||||||
///
|
///
|
||||||
|
@ -79,8 +79,8 @@ pub trait Preference {
|
||||||
///
|
///
|
||||||
/// This is the primary method of creating a prefstring from a `Preference` object. The
|
/// This is the primary method of creating a prefstring from a `Preference` object. The
|
||||||
/// default implementation calls the underlying [`Preference::into_prefstring_bytes()`] method.
|
/// default implementation calls the underlying [`Preference::into_prefstring_bytes()`] method.
|
||||||
fn into_prefstring(&self) -> String {
|
fn as_prefstring(&self) -> String {
|
||||||
BASE32_NOPAD.encode(&self.into_prefstring_bytes())
|
BASE32_NOPAD.encode(&self.as_prefstring_bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Select a pronoun for today using this Preference's WeightedTable.
|
/// Select a pronoun for today using this Preference's WeightedTable.
|
||||||
|
@ -98,15 +98,15 @@ pub trait Preference {
|
||||||
Some(name) => name.as_bytes(),
|
Some(name) => name.as_bytes(),
|
||||||
None => &[],
|
None => &[],
|
||||||
};
|
};
|
||||||
Ok(self.into_weighted_table(settings)?.select_today(seed))
|
Ok(self.create_weighted_table(settings)?.select_today(seed))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Preference for UserPreferences {
|
impl Preference for UserPreferences {
|
||||||
fn into_weighted_table<'a>(&self, settings: &'a InstanceSettings) -> Result<WeightedTable<&'a Pronoun>, ParseError> {
|
fn create_weighted_table<'a>(&self, settings: &'a InstanceSettings) -> Result<WeightedTable<&'a Pronoun>, ParseError> {
|
||||||
match self {
|
match self {
|
||||||
UserPreferences::V0(pref) => pref,
|
UserPreferences::V0(pref) => pref,
|
||||||
}.into_weighted_table(settings)
|
}.create_weighted_table(settings)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn from_prefstring_bytes(bytes: &[u8]) -> Result<Self, ParseError> where Self: Sized {
|
fn from_prefstring_bytes(bytes: &[u8]) -> Result<Self, ParseError> where Self: Sized {
|
||||||
|
@ -123,9 +123,9 @@ impl Preference for UserPreferences {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn into_prefstring_bytes(&self) -> Vec<u8> {
|
fn as_prefstring_bytes(&self) -> Vec<u8> {
|
||||||
match self {
|
match self {
|
||||||
UserPreferences::V0(pref) => pref,
|
UserPreferences::V0(pref) => pref,
|
||||||
}.into_prefstring_bytes()
|
}.as_prefstring_bytes()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ pub struct UserPreferencesV0 {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Preference for UserPreferencesV0 {
|
impl Preference for UserPreferencesV0 {
|
||||||
fn into_weighted_table<'a>(&self, settings: &'a InstanceSettings) -> Result<WeightedTable<&'a Pronoun>, ParseError> {
|
fn create_weighted_table<'a>(&self, settings: &'a InstanceSettings) -> Result<WeightedTable<&'a Pronoun>, ParseError> {
|
||||||
let mut remaining_pronouns = settings.pronoun_list.iter();
|
let mut remaining_pronouns = settings.pronoun_list.iter();
|
||||||
let mut weighted_pronouns = HashMap::with_capacity(settings.pronoun_list.len());
|
let mut weighted_pronouns = HashMap::with_capacity(settings.pronoun_list.len());
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ impl Preference for UserPreferencesV0 {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn into_prefstring_bytes(&self) -> Vec<u8> {
|
fn as_prefstring_bytes(&self) -> Vec<u8> {
|
||||||
let mut defaults_byte = 0u8;
|
let mut defaults_byte = 0u8;
|
||||||
if self.default_enabled {
|
if self.default_enabled {
|
||||||
defaults_byte |= 0b10000000;
|
defaults_byte |= 0b10000000;
|
||||||
|
@ -241,7 +241,7 @@ mod tests {
|
||||||
commands: Vec::new(),
|
commands: Vec::new(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let table = p.into_weighted_table(&s).unwrap();
|
let table = p.create_weighted_table(&s).unwrap();
|
||||||
let expected_table = vec![
|
let expected_table = vec![
|
||||||
("she", 2),
|
("she", 2),
|
||||||
("he", 2),
|
("he", 2),
|
||||||
|
@ -271,7 +271,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
let table = p.into_weighted_table(&s).unwrap();
|
let table = p.create_weighted_table(&s).unwrap();
|
||||||
let expected_table = vec![
|
let expected_table = vec![
|
||||||
("she", 3),
|
("she", 3),
|
||||||
("he", 3),
|
("he", 3),
|
||||||
|
@ -293,7 +293,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
let table = p.into_weighted_table(&s).unwrap();
|
let table = p.create_weighted_table(&s).unwrap();
|
||||||
let expected_table = vec![
|
let expected_table = vec![
|
||||||
("she", 5),
|
("she", 5),
|
||||||
("he", 4),
|
("he", 4),
|
||||||
|
@ -323,7 +323,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
let table = p.into_weighted_table(&s).unwrap();
|
let table = p.create_weighted_table(&s).unwrap();
|
||||||
let expected_table = vec![
|
let expected_table = vec![
|
||||||
("he", 9),
|
("he", 9),
|
||||||
("they", 5),
|
("they", 5),
|
||||||
|
@ -347,7 +347,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
let err = p.into_weighted_table(&s).unwrap_err();
|
let err = p.create_weighted_table(&s).unwrap_err();
|
||||||
assert_eq!(err, ParseError::PrefstringExceedsPronounCount);
|
assert_eq!(err, ParseError::PrefstringExceedsPronounCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
let err = p.into_weighted_table(&s).unwrap_err();
|
let err = p.create_weighted_table(&s).unwrap_err();
|
||||||
assert_eq!(err, ParseError::PrefstringExceedsPronounCount);
|
assert_eq!(err, ParseError::PrefstringExceedsPronounCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -385,7 +385,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
let table = p.into_weighted_table(&s).unwrap();
|
let table = p.create_weighted_table(&s).unwrap();
|
||||||
let expected_table = vec![
|
let expected_table = vec![
|
||||||
("it", 3),
|
("it", 3),
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in a new issue