| 55 | } |
| 56 | |
| 57 | func newRoot(engine storage.Engine, logger *zap.Logger, path *storage.URI) *Root { |
| 58 | poolCache, err := arc.NewARC[ksuid.KSUID, *Pool](1024) |
| 59 | if err != nil { |
| 60 | panic(err) |
| 61 | } |
| 62 | if logger == nil { |
| 63 | logger = zap.NewNop() |
| 64 | } |
| 65 | return &Root{ |
| 66 | engine: engine, |
| 67 | logger: logger, |
| 68 | path: path, |
| 69 | poolCache: poolCache, |
| 70 | vCache: vcache.NewCache(engine), |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | func Open(ctx context.Context, engine storage.Engine, logger *zap.Logger, path *storage.URI) (*Root, error) { |
| 75 | r := newRoot(engine, logger, path) |