package storage import gcs "cloud.google.com/go/storage" // Storage embeds a BucketHandle for the GCS bucket used to store job artifacts type Storage struct { *gcs.Client } type Bucket struct { *gcs.BucketHandle } // storageOpts is the internal options struct for creating a Storage struct type storageOpts struct { client *gcs.Client } type bucketOpts struct { bucketName string } // WithBucket allows setting the storage bucket name when creating a new Storage // struct func WithBucket(bucket string) BucketOption { return func(o *bucketOpts) { o.bucketName = bucket } } // WithClient allows injecting an existing GCS Client func WithClient(c *gcs.Client) Option { return func(o *storageOpts) { o.client = c } }