#vcard #derive #rfc-6350 #parameters #macro #sp-vcard

sp_vcard_derive

仅为sp_vcard提供的宏

2个不稳定版本

0.2.0 2023年10月2日
0.1.0 2023年9月30日

#rfc-6350中排名第5


sp_vcard中使用

MIT许可证

5KB
92

简单的vCard库

简单的vCard库可以帮助您生成vCard

示例

use std::fs;
use sp_vcard::rfc6350::parameters::BaseType;
use sp_vcard::rfc6350::values::{
    Category, Email, FullName, IGender, Role, Title, Photo,
};
use sp_vcard::rfc6350::parameters::media::ImageType;
use sp_vcard::rfc6350::VCard40;

fn main() {
    let mut vc = VCard40::new();

    vc.full_names.add(
        FullName::new()
            .set_value("Hello World")
            .set_language(Some("en".into()))
            .add_base_type(BaseType::HOME)
            .add_base_type(BaseType::WORK),
    );
    vc.gender.set(IGender::Male);
    vc.emails.add(
        Email::new()
            .set_value("[email protected]")
            .add_base_type(BaseType::WORK),
    );
    vc.categories.add(
        Category::new()
            .add_category("Rust")
    );
    vc.titles.add(
        Title::new()
            .set_value("Rust Developer")
            .add_base_type(BaseType::HOME),
    );
    vc.roles.add(Role::new().set_value("Story Teller"));

    let image = fs::read("./simple_image.png").unwrap();

    vc.photos
        .add(Photo::new().set_bytes_data(image, ImageType::PNG));

    println!("{}", vc);
}


依赖

~305–760KB
~18K SLoC