pub struct MigrationPlan {
pub steps: Vec<MigrationStep>,
pub current_version: SchemaVersion,
pub target_version: SchemaVersion,
}Expand description
An ordered sequence of MigrationSteps needed to reach a target version.
Fields§
§steps: Vec<MigrationStep>Ordered steps to execute (current → target).
current_version: SchemaVersionStarting schema version.
target_version: SchemaVersionDesired schema version.
Implementations§
Source§impl MigrationPlan
impl MigrationPlan
Sourcepub fn build(
current: SchemaVersion,
target: SchemaVersion,
available: &[MigrationStep],
) -> Result<Self, MigrationError>
pub fn build( current: SchemaVersion, target: SchemaVersion, available: &[MigrationStep], ) -> Result<Self, MigrationError>
Build a migration plan by finding a chain of steps from current to target.
Uses a simple BFS / greedy chain search: each step’s to_version must match
the next step’s from_version.
Sourcepub fn step_count(&self) -> usize
pub fn step_count(&self) -> usize
Number of steps in the plan.
Sourcepub fn is_reversible(&self) -> bool
pub fn is_reversible(&self) -> bool
Returns true when every step in the plan is reversible.
Trait Implementations§
Source§impl Clone for MigrationPlan
impl Clone for MigrationPlan
Source§fn clone(&self) -> MigrationPlan
fn clone(&self) -> MigrationPlan
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MigrationPlan
impl RefUnwindSafe for MigrationPlan
impl Send for MigrationPlan
impl Sync for MigrationPlan
impl Unpin for MigrationPlan
impl UnsafeUnpin for MigrationPlan
impl UnwindSafe for MigrationPlan
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more