Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152package mill
import ( "fmt" "tangled.org/core/spindle/db" millv1 "tangled.org/core/spindle/mill/proto/gen" "tangled.org/core/spindle/models")
func cacheBindingsToProto(bindings []models.CacheBinding) []*millv1.CacheBinding { result := make([]*millv1.CacheBinding, len(bindings)) for i, binding := range bindings { result[i] = &millv1.CacheBinding{ EntryIndex: uint32(binding.EntryIndex), RestoreId: binding.RestoreID, RestoreKey: binding.RestoreKey, RestoreName: binding.RestoreName, RestoreChecksum: binding.Checksum, RestoreSizeBytes: binding.SizeBytes, SaveId: binding.SaveID, SaveKey: binding.SaveKey, } } return result}
func cacheCapabilities(repoDid string, bindings []models.CacheBinding) ([]db.MillCacheCapability, error) { capabilities := make([]db.MillCacheCapability, 0, len(bindings)*2) for _, binding := range bindings { for _, capability := range []db.MillCacheCapability{ {Action: "restore", CacheID: binding.RestoreID, StorageKey: binding.RestoreKey}, {Action: "save", CacheID: binding.SaveID, StorageKey: binding.SaveKey}, } { if capability.CacheID == "" && capability.StorageKey == "" { continue } if capability.CacheID == "" || capability.StorageKey == "" { return nil, fmt.Errorf("%s cache id and key must both be set", capability.Action) } want, err := models.CacheObjectKey(repoDid, capability.CacheID) if err != nil { return nil, err } if capability.StorageKey != want { return nil, fmt.Errorf("%s cache key %q does not match object id", capability.Action, capability.StorageKey) } capabilities = append(capabilities, capability) } } return capabilities, nil}