package worker import ( "context" "github.com/moby/buildkit/cache" "github.com/moby/buildkit/solver" ) func NewWorkerRefResult(ref cache.ImmutableRef, worker Worker) solver.Result { return &workerRefResult{&WorkerRef{ImmutableRef: ref, Worker: worker}} } type WorkerRef struct { ImmutableRef cache.ImmutableRef Worker Worker } func (wr *WorkerRef) ID() string { refID := "" if wr.ImmutableRef != nil { refID = wr.ImmutableRef.ID() } return wr.Worker.ID() + "::" + refID } type workerRefResult struct { *WorkerRef } func (r *workerRefResult) Release(ctx context.Context) error { if r.ImmutableRef == nil { return nil } return r.ImmutableRef.Release(ctx) } func (r *workerRefResult) Sys() interface{} { return r.WorkerRef }