vcard_parser

Crates.iovcard_parser
lib.rsvcard_parser
version0.2.2
sourcesrc
created_at2022-10-13 23:23:07.997643
updated_at2024-01-20 19:29:21.371082
descriptionParses and validates vCard data according to RFC 6350 specification.
homepage
repositoryhttps://github.com/kenianbei/vcard_parser
max_upload_size
id687784
size357,449
(kenianbei)

documentation

https://docs.rs/vcard_parser

README

vCard Parser

Parses and validates vCard data according to RFC 6350 specification.

rust crates license release

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.");
}
Commit count: 20

cargo fmt