pwfr/core/ebuild/eapi/
mod.rs

1//! Ebuild API
2//!
3//! Ebuild API traits and facilities
4
5pub mod eapi0;
6
7/// Ebuild API versions
8///
9/// Contains implemented and supported Ebuild API versions
10pub enum EApiVersion {
11    EApi0,
12}
13
14/// Ebuild Package dependency
15pub struct PackageDep {
16    pub name: String,
17    pub use_flags: Vec<String>,
18}
19
20/// Ebuild Information API
21///
22/// Provide main ebuild information
23pub trait EApiInfo {
24    fn get_name(&self) -> String;
25
26    fn get_version(&self) -> String;
27
28    fn get_use_flags(&self) -> Vec<String>;
29
30    fn get_depends(&self, active_flags: Vec<String>) -> Vec<PackageDep>;
31}
32
33/// Main Ebuild API
34pub trait EApi {
35    fn get_eapi_version(&self) -> EApiVersion;
36
37    fn get_info(&self) -> Box<dyn EApiInfo>;
38}