Crate anitomy_sys[−][src]
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
ffi |
The FFI bindings to anitomy-c. |
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
ElementCategory |
The category of an |