Remove pub visibility from Config::translations hash (#796)

The access to translations is not straightforward and requires checks if
language and key exists. It is better to forbit direct access to
attribute and provide method - `get_translation()` - that will handle
all details of key translations.

Remove unit tests that use direct access and test only public method.
This commit is contained in:
Zdenek Crha 2019-09-04 20:30:32 +02:00 committed by Vincent Prouillet
parent 9db9fc8fb2
commit 096fefe7ed

View file

@ -110,7 +110,10 @@ pub struct Config {
/// ///
/// The `String` key of `HashMap` is a language name, the value should be toml crate `Table` /// The `String` key of `HashMap` is a language name, the value should be toml crate `Table`
/// with String key representing term and value another `String` representing its translation. /// with String key representing term and value another `String` representing its translation.
pub translations: HashMap<String, TranslateTerm>, ///
/// The attribute is intentionally not public, use `get_translation()` method for translating
/// key into different language.
translations: HashMap<String, TranslateTerm>,
/// Whether to highlight all code blocks found in markdown files. Defaults to false /// Whether to highlight all code blocks found in markdown files. Defaults to false
pub highlight_code: bool, pub highlight_code: bool,
@ -478,15 +481,6 @@ title = "Un titre"
title = "A title" title = "A title"
"#; "#;
#[test]
fn can_use_language_configuration() {
let config = Config::parse(CONFIG_TRANSLATION);
assert!(config.is_ok());
let translations = config.unwrap().translations;
assert_eq!(translations["fr"]["title"].as_str(), "Un titre");
assert_eq!(translations["en"]["title"].as_str(), "A title");
}
#[test] #[test]
fn can_use_present_translation() { fn can_use_present_translation() {
let config = Config::parse(CONFIG_TRANSLATION).unwrap(); let config = Config::parse(CONFIG_TRANSLATION).unwrap();