summaryrefslogtreecommitdiff
path: root/src/model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model.rs')
-rw-r--r--src/model.rs76
1 files changed, 0 insertions, 76 deletions
diff --git a/src/model.rs b/src/model.rs
deleted file mode 100644
index cac0820..0000000
--- a/src/model.rs
+++ /dev/null
@@ -1,76 +0,0 @@
-use chrono::NaiveDateTime;
-use crate::validation::{self, *};
-
-pub struct BCard {
- name: Option<Name>,
- nickname: Option<String>,
- label: Option<TypedProperty<String>>,
- address: Option<TypedProperty<Address>>,
- emails: Option<Vec<TypedProperty<String>>>,
- title: Option<String>,
- role: Option<String>,
- organization: Option<String>,
- urls: Option<Vec<TypedProperty<String>>>,
- telephones: Option<Vec<TypedProperty<String>>>,
- revision: Option<NaiveDateTime>,
-}
-
-impl BCard {
- fn new() -> Self {
- Self {
- name: None,
- nickname: None,
- label: None,
- address: None,
- emails: None,
- title: None,
- role: None,
- organization: None,
- urls: None,
- telephones: None,
- revision: None,
- }
- }
-}
-
-impl Validation for BCard {
- fn validate(&self) -> Result<(), ValidationError> {
- let mut result = Ok(());
- result = match &self.name {
- Some(n) => validation::add_results(result, n.validate()),
- None => Err( ValidationError{ messages: vec![String::from("Name cannot be empty")] } ),
- };
- // TODO add some more validation
- result
- }
-}
-
-pub struct Name {
- prefix: Option<String>,
- first_name: Option<String>,
- middle_name: Option<String>,
- family_name: Option<String>,
- suffix: Option<String>,
-}
-
-impl Validation for Name {
- fn validate(&self) -> std::result::Result<(), ValidationError> { todo!() }
-}
-
-pub enum WorkHomeType {
- Home,
- Work,
-}
-
-pub struct TypedProperty<T> {
- p_type: Option<WorkHomeType>,
- value: T,
-}
-
-pub struct Address {
- street: Option<String>,
- city: Option<String>,
- locality: Option<String>,
- postal_code: Option<String>,
- country: Option<String>,
-} \ No newline at end of file