extern crate chrono;
extern crate peg;
extern crate rusqlite;
mod catalog;
mod collections;
mod content;
mod folders;
mod fromdb;
mod images;
mod keywords;
mod keywordtree;
mod libraryfiles;
mod lrobject;
pub mod lron;
#[derive(Debug, PartialEq)]
pub struct Point {
pub x: f64,
pub y: f64,
}
#[derive(Debug, PartialEq)]
pub struct AspectRatio {
pub width: i64,
pub height: i64,
}
#[derive(Debug, PartialEq)]
pub struct Rect {
pub top: f64,
pub bottom: f64,
pub left: f64,
pub right: f64,
}
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Unimplemented")]
Unimplemented,
#[error("LrCat: Skip.")]
Skip,
#[error("LrCat: Unsupported catalog version.")]
UnsupportedVersion,
#[error("LrCat: SQL error: {0}")]
Sql(#[from] rusqlite::Error),
#[error("LrCat: Lron parsing error: {0}")]
Lron(#[from] peg::error::ParseError<peg::str::LineCol>),
}
pub type Result<T> = std::result::Result<T, Error>;
pub use catalog::{Catalog, CatalogVersion};
pub use collections::Collection;
pub use content::Content;
pub use folders::{Folder, Folders, RootFolder};
pub use images::Image;
pub use keywords::Keyword;
pub use keywordtree::KeywordTree;
pub use libraryfiles::LibraryFile;
pub use lrobject::{LrId, LrObject};