Skip to main content

oci_basic_usage/
basic_usage.rs

1use use_oci::{annotation, descriptor, digest, media_type, platform, reference};
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    let parsed_digest: digest::OciDigest =
5        "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".parse()?;
6    let descriptor = descriptor::OciDescriptor::new(
7        media_type::OciMediaType::image_manifest(),
8        parsed_digest,
9        descriptor::DescriptorSize::new(7023),
10    );
11    let linux_arm64 =
12        platform::OciPlatform::new(platform::OciOs::Linux, platform::OciArchitecture::Arm64);
13    let title = annotation::Annotation::title("RustUse OCI example")?;
14    let image_ref: reference::ImageReference =
15        "ghcr.io/rustuse/app:0.1.0@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".parse()?;
16
17    assert_eq!(descriptor.size().as_u64(), 7023);
18    assert_eq!(linux_arm64.to_string(), "linux/arm64");
19    assert_eq!(title.value().as_str(), "RustUse OCI example");
20    assert_eq!(image_ref.repository().as_str(), "rustuse/app");
21    Ok(())
22}