reifydb_core/lifecycle/task.rs
1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4use reifydb_value::value::duration::Duration;
5
6use crate::lifecycle::{class::RetentionClass, progress::Progress};
7
8pub trait LifecycleTask: Send + 'static {
9 fn name(&self) -> &'static str;
10
11 fn interval(&self) -> Duration;
12
13 fn classes(&self) -> &'static [RetentionClass];
14
15 fn run_slice(&mut self) -> Progress;
16}