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}