citeworks-cff 0.1.1

Serde types for serialising and deserialising CFF (Citation File Format)
Documentation

Citation File Format serde types and implementations.

This targets CFF 1.2.0 but may not support the entire specification.

The top level API mimics [serde_yaml]'s:

let cff = citeworks_cff::from_str(r#"
cff-version: 1.2.0
message:
  If you dare use this commercial, closed-source, strangely versioned
  software in your research, please at least cite it as below.
authors:
  - family-names: Vader
    name-suffix: né Skywalker
    given-names: 'Anakin "Darth"'
  - name: anonymous
title: Opaquity
version: opq-1234-XZVF-ACME-RLY
date-released: 2017-02-28
url: http://www.opaquity.com/
contact:
  - name: Dark Side Software
    address: DS-1 Orbital Battle Station, near Scarif
    email: father@imperial-empire.com
    tel: +850 (0)123-45-666
"#).unwrap();

assert_eq!(
    cff
        .authors[0]
        .as_person()
        .and_then(|his| his.family_names.as_deref()),
    Some("Vader")
);