aboutsummaryrefslogtreecommitdiff
path: root/src/validation
diff options
context:
space:
mode:
authorJoris2022-03-19 22:03:58 +0100
committerJoris2022-03-19 22:03:58 +0100
commit35cc74578e969bae4812afd2ff041eba3746142d (patch)
treec0ef18d3c81554f0e70c91fcb1006d587470365c /src/validation
parent199624dc03ead28ddc7454147457512d9568c593 (diff)
downloadcalendar-35cc74578e969bae4812afd2ff041eba3746142d.tar.gz
calendar-35cc74578e969bae4812afd2ff041eba3746142d.tar.bz2
calendar-35cc74578e969bae4812afd2ff041eba3746142d.zip
Allow to repeat an event until a specific date
Also provide a shortcut to modify a repetead event from a specific occurence. This set the end repetition date under the hood and create a new repeated event.
Diffstat (limited to 'src/validation')
-rw-r--r--src/validation/mod.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/validation/mod.rs b/src/validation/mod.rs
new file mode 100644
index 0000000..07a7c4c
--- /dev/null
+++ b/src/validation/mod.rs
@@ -0,0 +1,21 @@
+use chrono::NaiveTime;
+
+use crate::model::time;
+
+pub fn time(time: String) -> Option<Option<NaiveTime>> {
+ let time = time.trim();
+ if time.is_empty() {
+ Some(None)
+ } else {
+ time::parse(time).map(Some)
+ }
+}
+
+pub fn non_empty(str: String) -> Option<String> {
+ let str = str.trim();
+ if str.is_empty() {
+ None
+ } else {
+ Some(str.to_string())
+ }
+}