提交 1fef9a51 作者: Łukasz Magiera

coreapi ls: merge ResolveType and ResolveSize

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 d1b6ccaa
......@@ -136,8 +136,7 @@ The JSON output contains type information.
}
results, err := api.Unixfs().Ls(req.Context, p,
options.Unixfs.ResolveType(resolveType),
options.Unixfs.ResolveSize(resolveSize))
options.Unixfs.ResolveChildren(resolveSize || resolveType))
if err != nil {
return err
}
......
......@@ -43,8 +43,7 @@ type UnixfsAddSettings struct {
}
type UnixfsLsSettings struct {
ResolveType bool
ResolveSize bool
ResolveChildren bool
}
type UnixfsAddOption func(*UnixfsAddSettings) error
......@@ -130,8 +129,7 @@ func UnixfsAddOptions(opts ...UnixfsAddOption) (*UnixfsAddSettings, cid.Prefix,
func UnixfsLsOptions(opts ...UnixfsLsOption) (*UnixfsLsSettings, error) {
options := &UnixfsLsSettings{
ResolveSize: true,
ResolveType: true,
ResolveChildren: true,
}
for _, opt := range opts {
......@@ -313,16 +311,9 @@ func (unixfsOpts) Nocopy(enable bool) UnixfsAddOption {
}
}
func (unixfsOpts) ResolveSize(resolve bool) UnixfsLsOption {
func (unixfsOpts) ResolveChildren(resolve bool) UnixfsLsOption {
return func(settings *UnixfsLsSettings) error {
settings.ResolveSize = resolve
return nil
}
}
func (unixfsOpts) ResolveType(resolve bool) UnixfsLsOption {
return func(settings *UnixfsLsSettings) error {
settings.ResolveType = resolve
settings.ResolveChildren = resolve
return nil
}
}
......@@ -185,7 +185,7 @@ func (api *UnixfsAPI) processLink(ctx context.Context, linkres ft.LinkResult, se
lnk.Type = ft.TFile
lnk.Size = lnk.Link.Size
case cid.DagProtobuf:
if !settings.ResolveSize && !settings.ResolveType {
if !settings.ResolveChildren {
break
}
......@@ -201,12 +201,8 @@ func (api *UnixfsAPI) processLink(ctx context.Context, linkres ft.LinkResult, se
lnk.Err = err
break
}
if settings.ResolveType {
lnk.Type = d.Type()
}
if d.Type() == ft.TFile && settings.ResolveSize {
lnk.Size = d.FileSize()
}
lnk.Type = d.Type()
lnk.Size = d.FileSize()
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论