anitomy-sys

crates.io docs.rs Linux & OSX Build Status License
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: 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

Example

```rust 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-TigerandDragon[1280x720H.264FLAC][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)) .flatmap(|i| elements.at(i)) .for_each(|e| println!("{:?}: {:?}", e.category, e.value)); } unsafe { anitomy.destroy() }; } ```

Which outputs: Success? true It is: Toradora! #01 by TaigaSubs FileExtension: "mkv" FileName: "[TaigaSubs]_Toradora!_(2008)_-_01v2_-_Tiger_and_Dragon_[1280x720_H.264_FLAC][1234ABCD]" VideoTerm: "H.264" VideoResolution: "1280x720" AudioTerm: "FLAC" FileChecksum: "1234ABCD" AnimeYear: "2008" EpisodeNumber: "01" ReleaseVersion: "2" AnimeTitle: "Toradora!" ReleaseGroup: "TaigaSubs" EpisodeTitle: "Tiger and Dragon"