1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use futures::stream::BoxStream;
use libipld::Cid;

use crate::{Block, Channel};

use super::{BlockPut, BlockRm, BlockRmError};

pub mod flatfs;
pub mod memory;

pub(crate) enum RepoBlockCommand {
    Contains {
        cid: Cid,
        response: Channel<bool>,
    },
    Get {
        cid: Cid,
        response: Channel<Option<Block>>,
    },
    Size {
        cid: Vec<Cid>,
        response: Channel<Option<usize>>,
    },
    TotalSize {
        response: Channel<usize>,
    },
    PutBlock {
        block: Block,
        response: Channel<(Cid, BlockPut)>,
    },
    Remove {
        cid: Cid,
        response: Channel<Result<BlockRm, BlockRmError>>,
    },
    Cleanup {
        refs: BoxStream<'static, Cid>,
        response: Channel<Vec<Cid>>,
    },
    List {
        response: Channel<Vec<Cid>>,
    },
    Wipe {
        response: Channel<()>,
    },
}