Siena 3
I'm happy to announce the immediate availability of Siena 3, my data provider agnostic ORM for Rust. This release includes a number of bug fixes and improvements. Some of the changes are breaking changes.
YAML and FrontMatter data parsing improvements
YAML parsing has much improved. When previously YAML parsing only supported HashMap<String, String>
, as in root level key-value only and nothing else, then now the YAML parser supports a variety of new data structures such as String
, usize
, bool
, Vec<RecordData>
and HashMap<String, RecordData>
where RecordData
is:
pub enum RecordData {
Str(String),
Num(usize),
Bool(bool),
Map(HashMap<String, RecordData>),
Vec(Vec<RecordData>),
}
Meaning that yes, you can now have recursive data structures in YAML (and the YAML section in FrontMatter files).
Name changes
when_isnt
method is nowwhen_is_not
when_hasnt
method is nowwhen_has_not
RecordSortOrder::Custom
is nowRecordSortOrder::CustomStr
usize
custom sorting
I renamed the RecordSortOrder::Custom
to CustomStr
because I also introduced a new sorter called RecordSortOrder::CustomNum
which sorts usize
values in the same way the CustomStr
sorts strings.
I dogfood Siena myself for this very website actually, in Vau, my in-progress static site generator, and the above improvements are a direct result of me wanting to use Siena for my own purposes and finding it lacking. Dogfooding is great!