pub struct YamlBackend { /* private fields */ }Expand description
YAML file backend implementation
This wraps the existing Storage class to implement the DatabaseBackend trait, providing compatibility with the existing codebase while enabling the new abstraction layer.
Implementations§
Source§impl YamlBackend
impl YamlBackend
Source§impl YamlBackend
impl YamlBackend
Lists git tags that match the baseline pattern
Trait Implementations§
Source§impl DatabaseBackend for YamlBackend
impl DatabaseBackend for YamlBackend
Source§fn create_baseline(
&self,
name: String,
description: Option<String>,
created_by: String,
) -> Result<Baseline>
fn create_baseline( &self, name: String, description: Option<String>, created_by: String, ) -> Result<Baseline>
Creates a baseline with git tagging support for YAML backend
Source§fn backend_type(&self) -> BackendType
fn backend_type(&self) -> BackendType
Returns the backend type
Source§fn load(&self) -> Result<RequirementsStore>
fn load(&self) -> Result<RequirementsStore>
Loads the entire requirements store from the database
Source§fn save(&self, store: &RequirementsStore) -> Result<()>
fn save(&self, store: &RequirementsStore) -> Result<()>
Saves the entire requirements store to the database
Source§fn update_atomically<F>(&self, update_fn: F) -> Result<RequirementsStore>where
F: FnOnce(&mut RequirementsStore),
fn update_atomically<F>(&self, update_fn: F) -> Result<RequirementsStore>where
F: FnOnce(&mut RequirementsStore),
Performs an atomic update operation
Default implementation loads, applies changes, and saves
Source§fn get_requirement(&self, id: &Uuid) -> Result<Option<Requirement>>
fn get_requirement(&self, id: &Uuid) -> Result<Option<Requirement>>
Gets a requirement by its UUID
Source§fn get_requirement_by_spec_id(
&self,
spec_id: &str,
) -> Result<Option<Requirement>>
fn get_requirement_by_spec_id( &self, spec_id: &str, ) -> Result<Option<Requirement>>
Gets a requirement by its spec_id (e.g., “FR-001”)
Source§fn list_requirements(&self, include_archived: bool) -> Result<Vec<Requirement>>
fn list_requirements(&self, include_archived: bool) -> Result<Vec<Requirement>>
Lists all requirements (non-archived by default)
Source§fn add_requirement(&self, requirement: Requirement) -> Result<Requirement>
fn add_requirement(&self, requirement: Requirement) -> Result<Requirement>
Adds a new requirement
Returns the requirement with assigned spec_id
Note: This uses the simple SPEC-XXX format for ID generation.
For more complex ID generation (with feature/type prefixes), use update_atomically
Source§fn update_requirement(&self, requirement: &Requirement) -> Result<()>
fn update_requirement(&self, requirement: &Requirement) -> Result<()>
Updates an existing requirement
Source§fn update_requirement_versioned(
&self,
requirement: &Requirement,
) -> Result<UpdateResult>
fn update_requirement_versioned( &self, requirement: &Requirement, ) -> Result<UpdateResult>
Updates a requirement with optimistic locking Read more
Source§fn get_description(&self) -> Result<String>
fn get_description(&self) -> Result<String>
Gets the database description
Source§fn compare_with_baseline(
&self,
baseline_id: &Uuid,
) -> Result<Option<BaselineComparison>>
fn compare_with_baseline( &self, baseline_id: &Uuid, ) -> Result<Option<BaselineComparison>>
Compares current state against a baseline
Source§fn compare_baselines(
&self,
source_id: &Uuid,
target_id: &Uuid,
) -> Result<Option<BaselineComparison>>
fn compare_baselines( &self, source_id: &Uuid, target_id: &Uuid, ) -> Result<Option<BaselineComparison>>
Compares two baselines
Source§fn get_store_version(&self) -> Result<i64>
fn get_store_version(&self) -> Result<i64>
Gets the current store version (for detecting external modifications) Read more
Source§fn create_if_not_exists(&self) -> Result<()>
fn create_if_not_exists(&self) -> Result<()>
Creates the database with default/empty data if it doesn’t exist
Source§fn queue_list(
&self,
_user_id: &str,
_include_completed: bool,
) -> Result<Vec<QueueEntry>>
fn queue_list( &self, _user_id: &str, _include_completed: bool, ) -> Result<Vec<QueueEntry>>
Lists queue entries for a user
If include_completed is false, excludes entries whose requirement is Completed
Source§fn queue_remove(&self, _user_id: &str, _requirement_id: &Uuid) -> Result<()>
fn queue_remove(&self, _user_id: &str, _requirement_id: &Uuid) -> Result<()>
Removes an entry from a user’s queue
Source§fn queue_reorder(&self, _user_id: &str, _items: &[(Uuid, i64)]) -> Result<()>
fn queue_reorder(&self, _user_id: &str, _items: &[(Uuid, i64)]) -> Result<()>
Reorders queue entries by updating positions
Auto Trait Implementations§
impl Freeze for YamlBackend
impl RefUnwindSafe for YamlBackend
impl Send for YamlBackend
impl Sync for YamlBackend
impl Unpin for YamlBackend
impl UnsafeUnpin for YamlBackend
impl UnwindSafe for YamlBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more