#![cfg_attr(coverage_nightly, coverage(off))]
use crate::models::roadmap::{Roadmap, RoadmapItem};
use anyhow::{Context, Result};
use fs2::FileExt;
use std::fs::{self, File, OpenOptions};
use std::path::{Path, PathBuf};
pub const DEFAULT_ROADMAP_PATH: &str = "docs/roadmaps/roadmap.yaml";
pub struct RoadmapService {
roadmap_path: PathBuf,
}
impl RoadmapService {
#[provable_contracts_macros::contract("pmat-core.yaml", equation = "path_exists")]
pub fn new<P: AsRef<Path>>(roadmap_path: P) -> Self {
Self {
roadmap_path: roadmap_path.as_ref().to_path_buf(),
}
}
#[provable_contracts_macros::contract("pmat-core.yaml", equation = "check_compliance")]
pub fn default_path() -> Self {
Self::new(DEFAULT_ROADMAP_PATH)
}
}
include!("roadmap_service_io.rs");
include!("roadmap_service_operations.rs");
include!("roadmap_service_tests.rs");