anodized 0.4.0

An ecosystem for correct Rust based on lightweight specification annotations
Documentation
use anodized::spec;

#[spec(
    requires: {
        // Just a longer way of writing `true` :)
        let x = 5;
        x > 0
    },
    maintains: {
        let length = vec.len();
        length < 100
    },
    captures: {
        let snapshot = vec.clone();
        snapshot.len()
    } as old_len,
    ensures: {
        let length = vec.len();
        length > old_len
    },
)]
fn function_with_blocks(vec: &mut Vec<i32>) {
    vec.push(42);
}

#[test]
fn block_expressions() {
    let mut vec = vec![1, 2, 3];
    function_with_blocks(&mut vec);
}