Manage filesequences with a common numeric component in Rust.
```rust use cliquers
let files = vec![ "/show/sequence/shot/task/mainv001/render.1001.exr", "/show/sequence/shot/task/mainv001/render.1002.exr", "/show/sequence/shot/task/mainv001/render.1003.exr", "/show/sequence/shot/task/mainv001/render.1004.exr", "/show/sequence/shot/task/main_v001/render.1005.exr", ]; let collections = cliquers.assemble(&files, None); let c = &collections[0];
// access structure of file sequence asserteq!(c.head, "/show/sequence/shot/task/mainv001/render."); asserteq!(c.tail, ".exr"); asserteq!(c.padding, 4); asserteq!(c.indexes, vec![1001, 1002, 1003, 1004, 1005]); asserteq!( c.format(None), "/show/sequence/shot/task/mainv001/render.%04d.exr [1001-1005]" ); asserteq!( c.format(Some("{head}####{tail}")), "/show/sequence/shot/task/main_v001/render.####.exr" );
// iterate over files of filesequence let iter = c.intoiter(); asserteq!( iter.next(), Some("/show/sequence/shot/task/mainv001/render.1001.exr".tostring()) ); ```
This library is a direct port of the fantastic Python module Clique.
This is still a work in progress, so is not a complete port... yet!