use async_trait::async_trait;
use crate::client::OciClient;
use crate::error::Result;
use crate::r#ref::OciRef;
use crate::traits::OciResolver;
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
}
}