Skip to content
This repository was archived by the owner on Jul 1, 2025. It is now read-only.
/ detrim Public archive

Commit 555e402

Browse files
committed
feat: option_string
1 parent 7fcce3b commit 555e402

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## Unreleased
44

5+
- Add `option_string()` function.
56
- Add `vec_string()` function.
67

78
## 0.1.0

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ mod string_non_empty;
1010
mod vec_string;
1111

1212
pub use crate::{
13-
string::string,
13+
string::{option_string, string},
1414
string_non_empty::{option_string_non_empty, string_non_empty},
1515
vec_string::vec_string,
1616
};

src/string.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ pub fn string<'a, D: Deserializer<'a>>(de: D) -> Result<String, D::Error> {
77
String::deserialize(de).map(|val| val.trim().to_owned())
88
}
99

10+
/// Trims optional string during deserialization.
11+
pub fn option_string<'a, D: Deserializer<'a>>(de: D) -> Result<Option<String>, D::Error> {
12+
let val = Option::<String>::deserialize(de)?;
13+
Ok(val.map(|val| val.trim().to_owned()))
14+
}
15+
1016
#[cfg(test)]
1117
mod tests {
1218
use serde::Deserialize;

0 commit comments

Comments
 (0)