summaryrefslogtreecommitdiff
path: root/src/viewmodel/vcard.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/viewmodel/vcard.rs')
-rw-r--r--src/viewmodel/vcard.rs40
1 files changed, 0 insertions, 40 deletions
diff --git a/src/viewmodel/vcard.rs b/src/viewmodel/vcard.rs
deleted file mode 100644
index 18ce43a..0000000
--- a/src/viewmodel/vcard.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-use crate::viewmodel::address::Address;
-use crate::viewmodel::dates::Dates;
-use crate::viewmodel::name::Name;
-use crate::viewmodel::organizational::Organizational;
-use crate::viewmodel::telephone::Telephone;
-
-/// Type that represents the data structure of a vcard.
-#[derive(Clone, Debug)]
-pub struct VCardData {
- pub names: Vec<Name>,
- pub addresses: Vec<Address>,
- pub telephones: Vec<Telephone>,
- pub datess: Vec<Dates>,
- pub organizationals: Vec<Organizational>,
-}
-
-macro_rules! make_vec_adder_fn {
- ( fn $fnname:ident $property:ident => $($arg_name:ident : $arg_type:ty),* ) => {
- pub fn $fnname(&mut self, $( $arg_name : $arg_type ),*) {
- $(self.$property.push($arg_name);)*
- }
- };
-}
-
-impl VCardData {
- pub fn new() -> Self {
- Self {
- names: Vec::new(),
- addresses: Vec::new(),
- telephones: Vec::new(),
- datess: Vec::new(),
- organizationals: Vec::new(),
- }
- }
- make_vec_adder_fn!( fn add_name names => name: Name );
- make_vec_adder_fn!( fn add_address addresses => address: Address );
- make_vec_adder_fn!( fn add_telephone telephones => telephone: Telephone );
- make_vec_adder_fn!( fn add_dates datess => dates: Dates );
- make_vec_adder_fn!( fn add_organizational organizationals => organizational: Organizational );
-}