NewDirReader creates a new directory reader and prepares to fetch the static-set entries
(ctx context.Context, fetcher blob.Fetcher, dirBlobRef blob.Ref)
| 40 | // NewDirReader creates a new directory reader and prepares to |
| 41 | // fetch the static-set entries |
| 42 | func NewDirReader(ctx context.Context, fetcher blob.Fetcher, dirBlobRef blob.Ref) (*DirReader, error) { |
| 43 | ss := new(superset) |
| 44 | err := ss.setFromBlobRef(ctx, fetcher, dirBlobRef) |
| 45 | if err != nil { |
| 46 | return nil, err |
| 47 | } |
| 48 | if ss.Type != "directory" { |
| 49 | return nil, fmt.Errorf("schema/dirreader: expected \"directory\" schema blob for %s, got %q", dirBlobRef, ss.Type) |
| 50 | } |
| 51 | dr, err := ss.NewDirReader(fetcher) |
| 52 | if err != nil { |
| 53 | return nil, fmt.Errorf("schema/dirreader: creating DirReader for %s: %v", dirBlobRef, err) |
| 54 | } |
| 55 | dr.current = 0 |
| 56 | return dr, nil |
| 57 | } |
| 58 | |
| 59 | func (b *Blob) NewDirReader(ctx context.Context, fetcher blob.Fetcher) (*DirReader, error) { |
| 60 | return b.ss.NewDirReader(fetcher) |