github.com/dtroyer-salad/og2/v2@v2.0.0-20240412154159-c47231610877/target.go (about) 1 /* 2 Copyright The ORAS Authors. 3 Licensed under the Apache License, Version 2.0 (the "License"); 4 you may not use this file except in compliance with the License. 5 You may obtain a copy of the License at 6 7 http://www.apache.org/licenses/LICENSE-2.0 8 9 Unless required by applicable law or agreed to in writing, software 10 distributed under the License is distributed on an "AS IS" BASIS, 11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 See the License for the specific language governing permissions and 13 limitations under the License. 14 */ 15 16 package oras 17 18 import "oras.land/oras-go/v2/content" 19 20 // Target is a CAS with generic tags. 21 type Target interface { 22 content.Storage 23 content.TagResolver 24 } 25 26 // GraphTarget is a CAS with generic tags that supports direct predecessor node 27 // finding. 28 type GraphTarget interface { 29 content.GraphStorage 30 content.TagResolver 31 } 32 33 // ReadOnlyTarget represents a read-only Target. 34 type ReadOnlyTarget interface { 35 content.ReadOnlyStorage 36 content.Resolver 37 } 38 39 // ReadOnlyGraphTarget represents a read-only GraphTarget. 40 type ReadOnlyGraphTarget interface { 41 content.ReadOnlyGraphStorage 42 content.Resolver 43 }