# fsort [![Build Status](https://travis-ci.org/Christopher22/fsort.svg?branch=master)](https://travis-ci.org/Christopher22/fsort) fsort is a crate to sort files in a fast, OS-independent and 'rusty' way. ## Features - Easy sorting - Many criteria: Name, size, creation date, access date, ... - Pure Rust implementation without depedencies - OS-independent ## Example ```rust use std::fs::File; use std::path::PathBuf; use fsort::criterion::{FileName, FileSize}; use fsort::file_collection::{FileCollection, DynamicCollection}; fn main() { // Create temporal files let mut s1 = std::env::temp_dir(); let mut s2 = std::env::temp_dir(); s1.push("S1.tmp"); s2.push("S2.tmp"); File::create(&s1).unwrap().set_len(10); File::create(&s2).unwrap().set_len(5); // Inserts files into collection let mut collection = DynamicCollection::new::(); collection.add_file(&s2); collection.add_file(&s1); // Sort files by name and iterate over the paths let mut iter_name = collection.path_iter(); assert_eq!(s1, iter_name.next().unwrap()); assert_eq!(s2, iter_name.next().unwrap()); assert_eq!(None, iter_name.next()); // Change sort criterion and iterate again collection.set_criterion::(); let mut iter_size = collection.path_iter(); assert_eq!(s2, iter_size.next().unwrap()); assert_eq!(s1, iter_size.next().unwrap()); assert_eq!(None, iter_size.next()); } ``` ##Author Christopher Gundler () ##License Licensed under either of * Apache License, Version 2.0, (http://www.apache.org/licenses/LICENSE-2.0) * MIT license (http://opensource.org/licenses/MIT) at your option. ##Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.