rustpub 0.1.7

An implementation of the Activitypub types
Documentation
use rustpub::simple::core::*;
use rustpub::simple::properties::*;

fn main() {
    let object = ObjectBuilder::default()
        .context(context())
        .id("this is my id".to_string())
        .kind("Note".to_string())
        .build()
        .unwrap();

    println!("{:#?}", object);
    println!("{}", serde_json::to_string(&object).unwrap());
    let json_str = serde_json::to_string(&object).unwrap();

    let kind = core_kind(&json_str).unwrap();
    match kind {
        Kind::String(link) if link == "Link" => println!("it's a link"),
        Kind::String(kind) => println!("it's a {}", kind),
        _ => println!("it's unknown"),
    }

    let link = LinkBuilder::default()
        .kind("Link".to_string())
        .href("https://example.org".to_string())
        .media_type("text/html".to_string())
        .build()
        .unwrap();

    println!("{:#?}", link);
    println!("{}", serde_json::to_string(&link).unwrap());
    let json_str = serde_json::to_string(&link).unwrap();

    let kind = core_kind(&json_str).unwrap();
    match kind {
        Kind::String(link) if link == "Link" => println!("it's a Link"),
        Kind::String(kind) => println!("it's a {}", kind),
        Kind::None => println!("it's unknown"),
    }

    let person = ObjectBuilder::default()
        .context(context())
        .id("https://c95.pw/api/users/feddy".to_string())
        .kind("Person".to_string())
        .preferred_username("feddy".to_string())
        .inbox("https://c95.pw/api/users/feddy/inbox".to_string())
        .public_key(Box::new(
            ObjectBuilder::default()
                .id("https://c95.pw/api/users/feddy#main-key".to_string())
                .owner("https://c95.pw/api/users/feddy".to_string())
                .public_key_pem("PUBLIC KEY".to_string())
                .build()
                .unwrap(),
        ))
        .build()
        .unwrap();

    println!("{:#?}", person);
    println!("{}", serde_json::to_string(&person).unwrap());
}