pub struct RebuildStateMachine {
pub in_progress: bool,
pub started_at: Option<Instant>,
}Expand description
State-machine: решение о реакции на результат фоновой сборки.
Вынесена отдельно от потоков, чтобы юнит-тестировать без реального cargo.
Все методы чистые: принимают текущий статус и возвращают новый (без side
effects кроме лога в mark_rebuild_failure, который нужен по ТЗ 5.3).
Fields§
§in_progress: booltrue, если сейчас идёт фоновая сборка.
started_at: Option<Instant>Момент запуска последней активной сборки (для лога «took N s»).
Implementations§
Source§impl RebuildStateMachine
impl RebuildStateMachine
Sourcepub fn start(&mut self)
pub fn start(&mut self)
Запускаем новую фоновую сборку. Если старая ещё идёт — её нужно убить (вызывается снаружи; здесь только поднимаем флаг + таймер).
Sourcepub fn poll_outcome(&mut self, exit_code: i32) -> RebuildOutcome
pub fn poll_outcome(&mut self, exit_code: i32) -> RebuildOutcome
Обработать результат завершившейся сборки. Возвращает
RebuildOutcome, по которому main-loop решает, делать ли swap.
Trait Implementations§
Source§impl Clone for RebuildStateMachine
impl Clone for RebuildStateMachine
impl Copy for RebuildStateMachine
Source§impl Debug for RebuildStateMachine
impl Debug for RebuildStateMachine
Auto Trait Implementations§
impl Forget for RebuildStateMachine
impl Freeze for RebuildStateMachine
impl RefUnwindSafe for RebuildStateMachine
impl Send for RebuildStateMachine
impl Sync for RebuildStateMachine
impl Unpin for RebuildStateMachine
impl UnsafeUnpin for RebuildStateMachine
impl UnwindSafe for RebuildStateMachine
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