6 releases
0.2.2 | Jan 20, 2024 |
---|---|
0.2.1 | Jan 23, 2023 |
0.1.2 | Oct 30, 2022 |
#364 in Email
48 downloads per month
Used in vcard_tui
360KB
8K
SLoC
vCard Parser
Parses and validates vCard data according to RFC 6350 specification.
Installation
Add the library to the dependencies section of your cargo.toml file.
[dependencies]
vcard_parser = "0.2.2"
Usage
Rust documentation is here.
Basic Example
Read a vcf file, update the vCard object, and write back to file.
use std::fs::{read_to_string, write};
use vcard_parser::parse_vcards;
use vcard_parser::traits::HasValue;
use vcard_parser::vcard::value::Value;
use vcard_parser::vcard::value::value_text::ValueTextData;
fn main () {
let input = read_to_string("contacts.vcf").unwrap_or(String::from("BEGIN:VCARD\nVERSION:4.0\nFN:\nEND:VCARD\n"));
let mut vcards = parse_vcards(input.as_str()).expect("Unable to parse string.");
let vcard = vcards.first_mut().unwrap();
let mut property = vcard.get_property_by_name("FN").unwrap();
property.set_value(Value::from(ValueTextData::from("John Doe"))).unwrap();
vcard.set_property(&property).expect("Unable to update property.");
let mut data = String::new();
for vcard in vcards {
data.push_str(vcard.export().as_str())
}
write("contacts.vcf", data).expect("Unable to write file.");
}
Dependencies
~5.5MB
~100K SLoC