sqids 0.4.2

Generate short unique ids from numbers.
Documentation
use sqids::*;

#[test]
fn simple() {
	let sqids =
		Sqids::new(Some(Options::new(Some("0123456789abcdef".to_string()), None, None))).unwrap();

	let numbers = vec![1, 2, 3];
	let id = "489158";

	assert_eq!(sqids.encode(&numbers).unwrap(), id);
	assert_eq!(sqids.decode(id), numbers);
}

#[test]
fn short_alphabet() {
	let sqids = Sqids::new(Some(Options::new(Some("abc".to_string()), None, None))).unwrap();

	let numbers = vec![1, 2, 3];
	assert_eq!(sqids.decode(&sqids.encode(&numbers).unwrap()), numbers);
}

#[test]
fn long_alphabet() {
	let sqids = Sqids::new(Some(Options::new(
        Some("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+|{}[];:'\"/?.>,<`~".to_string()),
        None,
        None,
    ))).unwrap();

	let numbers = vec![1, 2, 3];
	assert_eq!(sqids.decode(&sqids.encode(&numbers).unwrap()), numbers);
}

#[test]
fn multibyte_characters() {
	assert_eq!(
		Sqids::new(Some(Options::new(Some("ë1092".to_string()), None, None,))).err().unwrap(),
		Error::AlphabetMultibyteCharacters
	)
}

#[test]
fn repeating_alphabet_characters() {
	assert_eq!(
		Sqids::new(Some(Options::new(Some("aabcdefg".to_string()), None, None,))).err().unwrap(),
		Error::AlphabetUniqueCharacters
	)
}

#[test]
fn too_short_alphabet() {
	assert_eq!(
		Sqids::new(Some(Options::new(Some("ab".to_string()), None, None,))).err().unwrap(),
		Error::AlphabetLength
	)
}