Alphanumeric Sort
====================
[![Build Status](https://travis-ci.org/magiclen/alphanumeric-sort.svg?branch=master)](https://travis-ci.org/magiclen/alphanumeric-sort)
This crate can help you sort order for files and folders whose names contain numerals.
## Motives and Examples
With the Rust native `sort` method, strings and paths are arranged into lexicographical order. It's natural, but in some cases, it is not so intuitive. For example, there are screen snap shots named by **shot-%N** like **shot-2**, **shot-1**, **shot-11**. After a lexicographical sorting, they will be ordered into **shot-1**, **shot-11**, **shot-2**. However, we would prefer **shot-1**, **shot-2**, **shot-11** mostly.
```rust
let mut names = ["shot-2", "shot-1", "shot-11"];
names.sort();
assert_eq!(["shot-1", "shot-11", "shot-2"], names);
```
Thus, in this kind of case, an alphanumeric sort might come in handy.
```rust
extern crate alphanumeric_sort;
let mut names = ["shot-2", "shot-1", "shot-11"];
alphanumeric_sort::sort_str_slice(&mut names);
assert_eq!(["shot-1", "shot-2", "shot-11"], names);
```
```rust
extern crate alphanumeric_sort;
use std::path::Path;
let mut paths = [Path::new("shot-2"), Path::new("shot-1"), Path::new("shot-11")];
alphanumeric_sort::sort_path_slice(&mut paths);
assert_eq!([Path::new("shot-1"), Path::new("shot-2"), Path::new("shot-11")], paths);
```
## Crates.io
https://crates.io/crates/alphanumeric-sort
## Documentation
https://docs.rs/alphanumeric-sort
## License
[MIT](LICENSE)