pub struct FeatureStore;Implementations§
Source§impl FeatureStore
impl FeatureStore
Sourcepub fn create(conn: &Connection, input: &CreateFeatureInput) -> Result<Feature>
pub fn create(conn: &Connection, input: &CreateFeatureInput) -> Result<Feature>
Create a new feature.
Sourcepub fn create_bulk(
conn: &Connection,
inputs: &[CreateFeatureInput],
) -> Result<Vec<Feature>>
pub fn create_bulk( conn: &Connection, inputs: &[CreateFeatureInput], ) -> Result<Vec<Feature>>
Create multiple features in a single transaction, resolving index-based dependencies.
Sourcepub fn get_stats(conn: &Connection) -> Result<FeatureStats>
pub fn get_stats(conn: &Connection) -> Result<FeatureStats>
Get feature statistics.
Sourcepub fn get_ready(conn: &Connection) -> Result<Vec<Feature>>
pub fn get_ready(conn: &Connection) -> Result<Vec<Feature>>
Get features that are ready to work on (not in progress, not passing, all deps pass).
Sourcepub fn get_blocked(conn: &Connection) -> Result<Vec<Feature>>
pub fn get_blocked(conn: &Connection) -> Result<Vec<Feature>>
Get features that are blocked by failing dependencies.
Sourcepub fn claim_and_get(conn: &Connection, id: i64) -> Result<Feature>
pub fn claim_and_get(conn: &Connection, id: i64) -> Result<Feature>
Atomically claim a feature and mark it in progress.
Sourcepub fn mark_passing(conn: &Connection, id: i64) -> Result<()>
pub fn mark_passing(conn: &Connection, id: i64) -> Result<()>
Mark a feature as passing.
Sourcepub fn mark_failing(conn: &Connection, id: i64) -> Result<()>
pub fn mark_failing(conn: &Connection, id: i64) -> Result<()>
Mark a feature as failing.
Sourcepub fn mark_in_progress(conn: &Connection, id: i64) -> Result<()>
pub fn mark_in_progress(conn: &Connection, id: i64) -> Result<()>
Mark a feature as in progress (atomic).
Sourcepub fn clear_in_progress(conn: &Connection, id: i64) -> Result<()>
pub fn clear_in_progress(conn: &Connection, id: i64) -> Result<()>
Clear in-progress flag.
Sourcepub fn skip(conn: &Connection, id: i64) -> Result<()>
pub fn skip(conn: &Connection, id: i64) -> Result<()>
Skip a feature by moving it to the end of the priority queue.
Sourcepub fn add_dependency(
conn: &Connection,
feature_id: i64,
dep_id: i64,
) -> Result<()>
pub fn add_dependency( conn: &Connection, feature_id: i64, dep_id: i64, ) -> Result<()>
Add a dependency to a feature. Uses SAVEPOINT for atomic read-modify-write to prevent TOCTOU races.
Sourcepub fn remove_dependency(
conn: &Connection,
feature_id: i64,
dep_id: i64,
) -> Result<()>
pub fn remove_dependency( conn: &Connection, feature_id: i64, dep_id: i64, ) -> Result<()>
Remove a dependency from a feature. Uses SAVEPOINT for atomic read-modify-write to prevent TOCTOU races.
Sourcepub fn set_dependencies(
conn: &Connection,
feature_id: i64,
dep_ids: &[i64],
) -> Result<()>
pub fn set_dependencies( conn: &Connection, feature_id: i64, dep_ids: &[i64], ) -> Result<()>
Set all dependencies for a feature (replaces existing). Uses SAVEPOINT for atomic validation + update.
Sourcepub fn get_graph(conn: &Connection) -> Result<Vec<FeatureGraphNode>>
pub fn get_graph(conn: &Connection) -> Result<Vec<FeatureGraphNode>>
Get the complete dependency graph with dependents computed.