Struct oci_spec::image::ImageManifest
source · pub struct ImageManifest { /* private fields */ }
Expand description
Unlike the image index, which contains information about a set of images that can span a variety of architectures and operating systems, an image manifest provides a configuration and set of layers for a single container image for a specific architecture and operating system.
Implementations§
source§impl ImageManifest
impl ImageManifest
sourcepub fn schema_version(&self) -> u32
pub fn schema_version(&self) -> u32
This REQUIRED property specifies the image manifest schema version. For this version of the specification, this MUST be 2 to ensure backward compatibility with older versions of Docker. The value of this field will not change. This field MAY be removed in a future version of the specification.
source§impl ImageManifest
impl ImageManifest
sourcepub fn media_type(&self) -> &Option<MediaType>
pub fn media_type(&self) -> &Option<MediaType>
This property is reserved for use, to maintain compatibility. When used, this field contains the media type of this document, which differs from the descriptor use of mediaType.
sourcepub fn artifact_type(&self) -> &Option<MediaType>
pub fn artifact_type(&self) -> &Option<MediaType>
This OPTIONAL property contains the type of an artifact when the manifest is used for an artifact. This MUST be set when config.mediaType is set to the empty value. If defined, the value MUST comply with RFC 6838, including the naming requirements in its section 4.2, and MAY be registered with IANA. Implementations storing or copying image manifests MUST NOT error on encountering an artifactType that is unknown to the implementation.
sourcepub fn config(&self) -> &Descriptor
pub fn config(&self) -> &Descriptor
This REQUIRED property references a configuration object for a container, by digest. Beyond the descriptor requirements, the value has the following additional restrictions: The media type descriptor property has additional restrictions for config. Implementations MUST support at least the following media types:
- application/vnd.oci.image.config.v1+json
Manifests concerned with portability SHOULD use one of the above media types.
sourcepub fn layers(&self) -> &Vec<Descriptor>
pub fn layers(&self) -> &Vec<Descriptor>
Each item in the array MUST be a descriptor. The array MUST have the
base layer at index 0. Subsequent layers MUST then follow in
stack order (i.e. from layers[0]
to layers[len(layers)-1]
).
The final filesystem layout MUST match the result of applying
the layers to an empty directory. The ownership, mode, and other
attributes of the initial empty directory are unspecified.
sourcepub fn subject(&self) -> &Option<Descriptor>
pub fn subject(&self) -> &Option<Descriptor>
This OPTIONAL property specifies a descriptor of another manifest. This value, used by the referrers API, indicates a relationship to the specified manifest.
source§impl ImageManifest
impl ImageManifest
sourcepub fn layers_mut(&mut self) -> &mut Vec<Descriptor>
pub fn layers_mut(&mut self) -> &mut Vec<Descriptor>
Each item in the array MUST be a descriptor. The array MUST have the
base layer at index 0. Subsequent layers MUST then follow in
stack order (i.e. from layers[0]
to layers[len(layers)-1]
).
The final filesystem layout MUST match the result of applying
the layers to an empty directory. The ownership, mode, and other
attributes of the initial empty directory are unspecified.
source§impl ImageManifest
impl ImageManifest
sourcepub fn set_schema_version(&mut self, val: u32) -> &mut Self
pub fn set_schema_version(&mut self, val: u32) -> &mut Self
This REQUIRED property specifies the image manifest schema version. For this version of the specification, this MUST be 2 to ensure backward compatibility with older versions of Docker. The value of this field will not change. This field MAY be removed in a future version of the specification.
sourcepub fn set_media_type(&mut self, val: Option<MediaType>) -> &mut Self
pub fn set_media_type(&mut self, val: Option<MediaType>) -> &mut Self
This property is reserved for use, to maintain compatibility. When used, this field contains the media type of this document, which differs from the descriptor use of mediaType.
sourcepub fn set_artifact_type(&mut self, val: Option<MediaType>) -> &mut Self
pub fn set_artifact_type(&mut self, val: Option<MediaType>) -> &mut Self
This OPTIONAL property contains the type of an artifact when the manifest is used for an artifact. This MUST be set when config.mediaType is set to the empty value. If defined, the value MUST comply with RFC 6838, including the naming requirements in its section 4.2, and MAY be registered with IANA. Implementations storing or copying image manifests MUST NOT error on encountering an artifactType that is unknown to the implementation.
sourcepub fn set_config(&mut self, val: Descriptor) -> &mut Self
pub fn set_config(&mut self, val: Descriptor) -> &mut Self
This REQUIRED property references a configuration object for a container, by digest. Beyond the descriptor requirements, the value has the following additional restrictions: The media type descriptor property has additional restrictions for config. Implementations MUST support at least the following media types:
- application/vnd.oci.image.config.v1+json
Manifests concerned with portability SHOULD use one of the above media types.
sourcepub fn set_layers(&mut self, val: Vec<Descriptor>) -> &mut Self
pub fn set_layers(&mut self, val: Vec<Descriptor>) -> &mut Self
Each item in the array MUST be a descriptor. The array MUST have the
base layer at index 0. Subsequent layers MUST then follow in
stack order (i.e. from layers[0]
to layers[len(layers)-1]
).
The final filesystem layout MUST match the result of applying
the layers to an empty directory. The ownership, mode, and other
attributes of the initial empty directory are unspecified.
sourcepub fn set_subject(&mut self, val: Option<Descriptor>) -> &mut Self
pub fn set_subject(&mut self, val: Option<Descriptor>) -> &mut Self
This OPTIONAL property specifies a descriptor of another manifest. This value, used by the referrers API, indicates a relationship to the specified manifest.
source§impl ImageManifest
impl ImageManifest
sourcepub fn from_file<P: AsRef<Path>>(path: P) -> Result<ImageManifest>
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<ImageManifest>
Attempts to load an image manifest from a file.
§Errors
This function will return an OciSpecError::Io if the file does not exist or an OciSpecError::SerDe if the image manifest cannot be deserialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
sourcepub fn from_reader<R: Read>(reader: R) -> Result<ImageManifest>
pub fn from_reader<R: Read>(reader: R) -> Result<ImageManifest>
Attempts to load an image manifest from a stream.
§Errors
This function will return an OciSpecError::SerDe if the manifest cannot be deserialized.
§Example
use oci_spec::image::ImageManifest;
use std::fs::File;
let reader = File::open("manifest.json").unwrap();
let image_manifest = ImageManifest::from_reader(reader).unwrap();
sourcepub fn to_file<P: AsRef<Path>>(&self, path: P) -> Result<()>
pub fn to_file<P: AsRef<Path>>(&self, path: P) -> Result<()>
Attempts to write an image manifest to a file as JSON. If the file already exists, it will be overwritten.
§Errors
This function will return an OciSpecError::SerDe if the image manifest cannot be serialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
image_manifest.to_file("my-manifest.json").unwrap();
sourcepub fn to_file_pretty<P: AsRef<Path>>(&self, path: P) -> Result<()>
pub fn to_file_pretty<P: AsRef<Path>>(&self, path: P) -> Result<()>
Attempts to write an image manifest to a file as pretty printed JSON. If the file already exists, it will be overwritten.
§Errors
This function will return an OciSpecError::SerDe if the image manifest cannot be serialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
image_manifest.to_file_pretty("my-manifest.json").unwrap();
sourcepub fn to_writer<W: Write>(&self, writer: &mut W) -> Result<()>
pub fn to_writer<W: Write>(&self, writer: &mut W) -> Result<()>
Attempts to write an image manifest to a stream as JSON.
§Errors
This function will return an OciSpecError::SerDe if the image manifest cannot be serialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
let mut writer = Vec::new();
image_manifest.to_writer(&mut writer);
sourcepub fn to_writer_pretty<W: Write>(&self, writer: &mut W) -> Result<()>
pub fn to_writer_pretty<W: Write>(&self, writer: &mut W) -> Result<()>
Attempts to write an image manifest to a stream as pretty printed JSON.
§Errors
This function will return an OciSpecError::SerDe if the image manifest cannot be serialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
let mut writer = Vec::new();
image_manifest.to_writer_pretty(&mut writer);
sourcepub fn to_string(&self) -> Result<String>
pub fn to_string(&self) -> Result<String>
Attempts to write an image manifest to a string as JSON.
§Errors
This function will return an OciSpecError::SerDe if the image configuration cannot be serialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
let json_str = image_manifest.to_string().unwrap();
sourcepub fn to_string_pretty(&self) -> Result<String>
pub fn to_string_pretty(&self) -> Result<String>
Attempts to write an image manifest to a string as pretty printed JSON.
§Errors
This function will return an OciSpecError::SerDe if the image configuration cannot be serialized.
§Example
use oci_spec::image::ImageManifest;
let image_manifest = ImageManifest::from_file("manifest.json").unwrap();
let json_str = image_manifest.to_string_pretty().unwrap();
Trait Implementations§
source§impl Clone for ImageManifest
impl Clone for ImageManifest
source§fn clone(&self) -> ImageManifest
fn clone(&self) -> ImageManifest
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ImageManifest
impl Debug for ImageManifest
source§impl<'de> Deserialize<'de> for ImageManifest
impl<'de> Deserialize<'de> for ImageManifest
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Display for ImageManifest
impl Display for ImageManifest
This ToString trait is automatically implemented for any type which implements the Display trait. As such, ToString shouldn’t be implemented directly: Display should be implemented instead, and you get the ToString implementation for free.
source§impl PartialEq for ImageManifest
impl PartialEq for ImageManifest
source§impl Serialize for ImageManifest
impl Serialize for ImageManifest
impl Eq for ImageManifest
impl StructuralPartialEq for ImageManifest
Auto Trait Implementations§
impl Freeze for ImageManifest
impl RefUnwindSafe for ImageManifest
impl Send for ImageManifest
impl Sync for ImageManifest
impl Unpin for ImageManifest
impl UnwindSafe for ImageManifest
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)