diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-05-18 14:51:28 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-05-19 12:13:36 +0000 |
| commit | bfa652abef4174801701986145cdef6825f35d28 (patch) | |
| tree | 1e74d6c5c8f6ab10caa9351ff62cf5224781b8d0 | |
| parent | 45b931c69d78468b5884a492b8563885c07fdd0c (diff) | |
| download | mullvadvpn-bfa652abef4174801701986145cdef6825f35d28.tar.xz mullvadvpn-bfa652abef4174801701986145cdef6825f35d28.zip | |
Manually impl. `Deserialize` to collapse newlines
| -rw-r--r-- | android/translations-converter/src/android/string_value.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/android/translations-converter/src/android/string_value.rs b/android/translations-converter/src/android/string_value.rs index 149a3e0c16..460f753719 100644 --- a/android/translations-converter/src/android/string_value.rs +++ b/android/translations-converter/src/android/string_value.rs @@ -1,13 +1,13 @@ use lazy_static::lazy_static; use regex::Regex; -use serde::{Deserialize, Serialize}; +use serde::{Deserialize, Deserializer, Serialize}; use std::{ fmt::{self, Display, Formatter}, ops::Deref, }; /// An Android string value -#[derive(Clone, Debug, Eq, Deserialize, Hash, PartialEq, Serialize)] +#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize)] pub struct StringValue(String); impl StringValue { @@ -105,6 +105,15 @@ impl Display for StringValue { } } +impl<'de> Deserialize<'de> for StringValue { + fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> { + let raw_string = String::deserialize(deserializer)?; + let string_with_collapsed_newlines = Self::collapse_line_breaks(raw_string); + + Ok(StringValue(string_with_collapsed_newlines)) + } +} + #[cfg(test)] mod tests { use super::StringValue; |
