19 个版本 (8 个破坏性版本)

0.9.2 2022年1月2日
0.8.0 2021年10月23日
0.7.0 2021年7月29日
0.1.6 2021年2月21日

#1031 in 数据结构

Download history 1/week @ 2024-03-08 32/week @ 2024-03-29 9/week @ 2024-04-05

每月52次 下载
用于 contack_vcard

MIT/Apache

105KB
2K SLoC

Contack

License: MIT License

Contack 是一个 Rust 联系人库。它并没有严格遵循 RFC,而是为了使用方便而放弃了一些兼容性。例如,它不能表达任意数量的职位角色,而是只提供 1 个选项,这使得使用起来更加简单。

使用 read_write 功能,你可以对 VCard 实现原生的序列化和反序列化支持。这是通过以下方式实现的:

use contack::Contact;
use contack::read_write::vcard::VCard;
use std::fs::File;
use std::io::prelude::*;
use std::error::Error;

fn main() -> Result<(), Box<dyn Error>> {
    // Load a VCard file
    let mut vcard = String::new();
    File::open("my_card.vcard")?.read_to_string(&mut vcard)?;
    
    // Serialise it
    let vcard: VCard = vcard.parse()?;
    
    // Convert it to a contact
    let mut contact: Contact = vcard.try_into()?;
    
    // Make some changes
    contact.role = Some(String::from("Being a handy example."));
    
    // Convert it to a VCard representation.
    let vcard: VCard = contact.into();
    
    // Print it to the stdout
    println!("{}", vcard.to_string());

    Ok(())
}

它还支持以下外部库:

  • Diesel diesel_support。这支持序列化和反序列化。
  • Sqlx sqlx_support。这支持序列化和反序列化。

依赖项

~0.5–7MB
~141K SLoC