Skip to main content

vyre_driver/backend/
resource.rs

1//! Backend-neutral resource handles.
2
3/// A GPU-resident or host-side resource used as an input to a Program.
4#[derive(Clone, Debug, Eq, PartialEq)]
5pub enum Resource {
6    /// Host-side byte slice. Replicated to the GPU on each dispatch.
7    Borrowed(Vec<u8>),
8    /// GPU-resident buffer handle. Zero-copy; no host transfer occurs.
9    Resident(u64),
10}
11
12impl Default for Resource {
13    fn default() -> Self {
14        Resource::Borrowed(Vec::new())
15    }
16}
17
18impl From<Vec<u8>> for Resource {
19    fn from(bytes: Vec<u8>) -> Self {
20        Self::Borrowed(bytes)
21    }
22}