use super::context::MetalNativeContext;
use crate::error::{HiveGpuError, Result};
use objc2::rc::Retained;
use objc2::runtime::ProtocolObject;
use objc2_metal::MTLBuffer;
use std::sync::Arc;
#[cfg(all(target_os = "macos", feature = "metal-native"))]
#[derive(Debug)]
pub struct MetalBufferPool {
context: Arc<MetalNativeContext>,
}
#[cfg(all(target_os = "macos", feature = "metal-native"))]
impl MetalBufferPool {
pub fn new(context: Arc<MetalNativeContext>) -> Result<Self> {
Ok(Self { context })
}
pub fn get_buffer(&mut self, size: usize) -> Result<Retained<ProtocolObject<dyn MTLBuffer>>> {
Err(HiveGpuError::Other(
"Buffer pool not implemented yet".to_string(),
))
}
pub fn return_buffer(&mut self, buffer: Retained<ProtocolObject<dyn MTLBuffer>>) -> Result<()> {
Ok(())
}
}