diff options
Diffstat (limited to 'snippets')
-rw-r--r-- | snippets | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/snippets b/snippets new file mode 100644 index 0000000..dc4e601 --- /dev/null +++ b/snippets @@ -0,0 +1,103 @@ + + + match self.vcard_data.get_mut() { + Some(vcard_builder) => *vcard_builder = vcard_builder.with_name( + parameters!(), + name.last_name.is_empty().then(|| name.last_name), + name.first_name.is_empty().then(|| name.first_name), + name.middle_name.is_empty().then(|| name.middle_name), + name.prefix.is_empty().then(|| name.prefix), + name.suffix.is_empty().then(|| name.suffix) + ), + None => (), + }; + + -------------------------------------------------------------- + + let mut types = String::new(); + if address.work { + types.push_str("WORK"); + } + if address.home { + if types.is_empty() { + types.push(','); + } + types.push_str("HOME") + } + + match self.vcard_data.get_mut() { + Some(vcard_builder) => *vcard_builder = vcard_builder.with_adr( + parameters!("TYPE" => types), + address.post_office_box.is_empty().then(|| address.post_office_box), + address.extension.is_empty().then(|| address.extension), + address.street.is_empty().then(|| address.street), + address.locality.is_empty().then(|| address.locality), + address.region.is_empty().then(|| address.region), + address.code.is_empty().then(|| address.code), + address.country.is_empty().then(|| address.country), + ), + None => (), + }; + + ---------------------------------------------------------------- + + let mut types = String::new(); + if telephone.work { + types.push_str("WORK"); + } + if telephone.home { + if types.is_empty() { + types.push(','); + } + types.push_str("HOME") + } + if telephone.text { + if types.is_empty() { + types.push(','); + } + types.push_str("TEXT") + } + if telephone.voice { + if types.is_empty() { + types.push(','); + } + types.push_str("VOICE") + } + if telephone.fax { + if types.is_empty() { + types.push(','); + } + types.push_str("FAX") + } + if telephone.cell { + if types.is_empty() { + types.push(','); + } + types.push_str("CELL") + } + if telephone.video { + if types.is_empty() { + types.push(','); + } + types.push_str("VIDEO") + } + if telephone.pager { + if types.is_empty() { + types.push(','); + } + types.push_str("PAGER") + } + if telephone.text_phone { + if types.is_empty() { + types.push(','); + } + types.push_str("TEXTPHONE") + } + + match self.vcard_data.get_mut() { + Some(vcard_builder) => *vcard_builder = vcard_builder.with_tel( + parameters!("TYPE" => types), + telephone.number, + ), + None => (), + };
\ No newline at end of file |