xbp-oci 10.46.0

OCI registry primitives and traits for XBP deploy.
Documentation
use async_trait::async_trait;

use crate::client::OciClient;
use crate::error::Result;
use crate::r#ref::OciRef;
use crate::traits::OciResolver;

/// Default resolver backed by [`OciClient`].
pub struct DefaultOciResolver {
    client: OciClient,
}

impl DefaultOciResolver {
    pub fn new(client: OciClient) -> Self {
        Self { client }
    }
}

#[async_trait]
impl OciResolver for DefaultOciResolver {
    async fn resolve_digest(&self, image: &OciRef) -> Result<String> {
        self.client.resolve_digest(image).await
    }

    async fn exists(&self, image: &OciRef) -> Result<bool> {
        self.client.exists(image).await
    }

    async fn list_tags(&self, image: &OciRef, limit: Option<usize>) -> Result<Vec<String>> {
        self.client.list_tags(image, limit).await
    }
}