[][src]Crate file_seq

Fail-safe file sequence

Works by versioning values of sequences and throwing away all versions, but the current and the previous one.

Inspired by this Java implementation


use file_seq::FileSeq;
use std::path::Path;

let dir = Path::new("/tmp/example");
let initial_value = 1;

let seq = FileSeq::new(&dir, initial_value).unwrap();

// Get current value
assert_eq!(initial_value, seq.value().unwrap());

// Increment and get
assert_eq!(initial_value + 1, seq.increment_and_get(1).unwrap());

// Get and then increment
assert_eq!(initial_value + 1, seq.get_and_increment(1).unwrap());
assert_eq!(initial_value + 2, seq.value().unwrap());