//! Placeholder OCI-registry blob backend (D23).
//!
//! Real implementation is deferred per the trigger-based discipline.
//! Reuses `oras`/ZOT infrastructure already in place via ADR-017's
//! credential vault — the impl will land when cross-actor artifact
//! sharing demands it.

use crate::backend::BlobBackend;
use crate::error::{Error, Result};
use crate::store::BlobId;

/// OCI-registry blob backend — not yet implemented.
#[derive(Debug, Default)]
pub struct OciBlobs;

impl BlobBackend for OciBlobs {
    fn put(&self, _bytes: &[u8]) -> Result<BlobId> {
        Err(Error::Persist(
            "OciBlobs backend not implemented (D23 placeholder)".to_string(),
        ))
    }

    fn get(&self, _id: &BlobId) -> Result<Vec<u8>> {
        Err(Error::Persist(
            "OciBlobs backend not implemented (D23 placeholder)".to_string(),
        ))
    }

    fn exists(&self, _id: &BlobId) -> bool {
        false
    }

    fn list_prefix(&self, _prefix_hex: &str) -> Result<Vec<BlobId>> {
        Err(Error::Persist(
            "OciBlobs backend not implemented (D23 placeholder)".to_string(),
        ))
    }
}
