Expand description
§anitomy-sys
anitomy-sys is a low-level Rust binding for Anitomy a C++ library for parsing anime video filenames.
Makes use of anitomy-c a C ABI wrapper for Anitomy.
§Installation
Add this to your Cargo.toml:
[dependencies]
anitomy-sys = "0.1"anitomy-sys will compile and statically link anitomy-c and Anitomy at build time, as such a compatible compiler is required.
§Requirements
- A C++14 compatible compiler
- GCC >= 5
- Clang >= 3.4 (According to the Clang CXX status page)
- Visual Studio 2017 OR Build Tools for Visual Studio 2017
§Example
extern crate anitomy_sys;
use anitomy_sys::{Anitomy, ElementCategory};
use std::ffi::CString;
fn main() {
let mut anitomy = unsafe { Anitomy::new() };
let filename = CString::new("[TaigaSubs]_Toradora!_(2008)_-_01v2_-_Tiger_and_Dragon_[1280x720_H.264_FLAC][1234ABCD].mkv").expect("no nul chars in filename");
let success = unsafe { anitomy.parse(&filename) };
println!("Success? {}", success);
unsafe {
let elements = anitomy.elements();
println!(
"It is: {} #{} by {}",
elements.get(ElementCategory::AnimeTitle),
elements.get(ElementCategory::EpisodeNumber),
elements.get(ElementCategory::ReleaseGroup)
);
(0..elements.count(None))
.flat_map(|i| elements.at(i))
.for_each(|e| println!("{:?}: {:?}", e.category, e.value));
}
unsafe { anitomy.destroy() };
}Modules§
Structs§
- Anitomy
- An Anitomy parser instance.
- Element
- An element parsed from a filename by Anitomy.
- Elements
- The collection of elements parsed from a filename by Anitomy.
- Options
- The options used by Anitomy to determine how to parse a filename.
Enums§
- Element
Category - The category of an
Element.