pub struct Reference { /* private fields */ }Expand description
Reference provides a general type to represent any way of referencing images within an OCI registry.
§Examples
Parsing a tagged image reference:
use oci_spec::distribution::Reference;
let reference: Reference = "docker.io/library/hello-world:latest".parse().unwrap();
assert_eq!("docker.io/library/hello-world:latest", reference.whole().as_str());
assert_eq!("docker.io", reference.registry());
assert_eq!("library/hello-world", reference.repository());
assert_eq!(Some("latest"), reference.tag());
assert_eq!(None, reference.digest());Implementations§
Source§impl Reference
impl Reference
Sourcepub fn with_tag(registry: String, repository: String, tag: String) -> Reference
pub fn with_tag(registry: String, repository: String, tag: String) -> Reference
Create a Reference with a registry, repository and tag.
Sourcepub fn with_digest(
registry: String,
repository: String,
digest: String,
) -> Reference
pub fn with_digest( registry: String, repository: String, digest: String, ) -> Reference
Create a Reference with a registry, repository and digest.
Sourcepub fn with_tag_and_digest(
registry: String,
repository: String,
tag: String,
digest: String,
) -> Reference
pub fn with_tag_and_digest( registry: String, repository: String, tag: String, digest: String, ) -> Reference
Create a new instance of Reference with a registry, repository, tag and digest.
This is useful when you need to reference an image by both its semantic version (tag) and its content-addressable digest for immutability.
§Examples
use oci_spec::distribution::Reference;
let reference = Reference::with_tag_and_digest(
"docker.io".to_string(),
"library/nginx".to_string(),
"1.21".to_string(),
"sha256:abc123...".to_string(),
);Sourcepub fn clone_with_digest(&self, digest: String) -> Reference
pub fn clone_with_digest(&self, digest: String) -> Reference
Clone the Reference for the same image with a new digest.
Sourcepub fn resolve_registry(&self) -> &str
pub fn resolve_registry(&self) -> &str
Resolve the registry address of a given Reference.
Some registries, such as docker.io, uses a different address for the actual registry. This function implements such redirection.
If a mirror registry is set, it will be used instead of the original registry.
Sourcepub fn repository(&self) -> &str
pub fn repository(&self) -> &str
Returns the name of the repository.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Reference
impl<'de> Deserialize<'de> for Reference
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Reference, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Reference, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for Reference
impl Serialize for Reference
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for Reference
impl StructuralPartialEq for Reference
Auto Trait Implementations§
impl Freeze for Reference
impl RefUnwindSafe for Reference
impl Send for Reference
impl Sync for Reference
impl Unpin for Reference
impl UnwindSafe for Reference
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.