use std::{io::Result, time::Duration};
use crate::{fs::IpldFS, percentage::Percentage};
pub trait GcStrategy {
type Executor: GcExectuor;
fn start(&mut self) -> Self::Executor;
}
pub trait GcExectuor {
fn execute_once<FS: IpldFS>(
&mut self,
fs: &mut FS,
max_execution_time: Duration,
) -> Result<Percentage>;
}