diff options
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 81 |
1 files changed, 3 insertions, 78 deletions
@@ -11,81 +11,6 @@ //! - vdb reader //! - sourcing ebuilds with bash //! - -#![deny(clippy::pedantic, unused_imports)] -#![allow( - dead_code, - unstable_name_collisions, - clippy::missing_errors_doc, - clippy::missing_panics_doc -)] -#![feature(impl_trait_in_assoc_type)] - -use mon::{ - Parser, - input::{Input, InputIter}, -}; - -pub trait Parseable<'a, I: Input + 'a> { - type Parser: Parser<I, Output = Self>; - - fn parser() -> Self::Parser; - - fn parse(input: I) -> Result<Self, I> - where - Self: Sized, - { - Self::parser() - .parse_finished(InputIter::new(input)) - .map_err(|e| e.rest()) - } -} - -/// Strongly typed atom and cpv representations. -/// -/// Create atoms from parsers: -/// ``` -/// use gentoo_utils::{Parseable, atom::Atom}; -/// -/// let emacs = Atom::parse("=app-editors/emacs-31.0-r1") -/// .expect("failed to parse atom"); -/// -/// assert_eq!(emacs.to_string(), "=app-editors/emacs-31.0-r1"); -/// ```` -/// -/// Compare versions: -/// ``` -/// use gentoo_utils::{Parseable, atom::Cpv}; -/// -/// let a = Cpv::parse("foo/bar-1.0").unwrap(); -/// let b = Cpv::parse("foo/bar-2.0").unwrap(); -/// -/// assert!(a < b); -/// ``` -pub mod atom; - -/// Access to repos and ebuilds. -/// -/// ``` -/// use gentoo_utils::repo::Repo; -/// -/// let repo = Repo::new("/var/db/repos/gentoo"); -/// -/// for result in repo.categories().expect("failed to read categories") { -/// let category = result.expect("failed to read category"); -/// -/// for result in category.ebuilds().expect("failed to read ebuilds") { -/// let ebuild = result.expect("failed to read ebuild"); -/// -/// println!( -/// "{}-{}: {}", -/// ebuild.name(), -/// ebuild.version(), -/// ebuild.description().clone().unwrap_or("no description available".to_string()) -/// ); -/// } -/// } -/// -/// ``` -pub mod repo; -pub mod useflag; +pub use atom; +pub use useflag; +pub use repo; |
