摘要:
1.块的删除和过滤
详情:
知识点:
omitempty:表示这条信息如果没有提供,在序列化成 json 的时候就不要包含其默认值
结构体:
//已经被删除的块
type RemovedBlock struct {
Hash string `json:",omitempty"` //hash
Error string `json:",omitempty"` //错误
}
// 删除块选项
type RmBlocksOpts struct {
Prefix string //前缀
Quiet bool //是否静默
Force bool //是否强制删除
}
全局函数:
/*
删除块
ctx: 上下文
blocks: 块集合
pins: 固定器
cids: cid入参
opts: 选项
返回: interface{}管道, 错误
*/
RmBlocks(ctx context.Context, blocks bs.GCBlockstore, pins pin.Pinner,
cids []cid.Cid, opts RmBlocksOpts) (<-chan interface{}, error)
/*
过滤已固定的cid
ctx: 上下文
pins: 固定器
out: 已删除块的管道
cids: cid集合
返回: 过滤后的cid
*/
FilterPinned(ctx context.Context, pins pin.Pinner, out chan<- interface{},
cids []cid.Cid) []cid.Cid
/*
遍历函数是否返回错误
next: 遍历函数
sout: 用来返回删除的buffer
serr: 用来返回未删除的buffer
*/
ProcRmOutput(next func() (interface{}, error), sout io.Writer, serr io.Writer) error