use std::collections::HashMap; use std::num::NonZeroU16; use orchid_api_derive::{Coding, Hierarchy}; use orchid_api_traits::Request; use crate::error::OrcResult; use crate::interner::TStr; use crate::proto::HostExtReq; use crate::system::SysId; #[derive(Copy, Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Coding)] pub struct VfsId(pub NonZeroU16); #[derive(Clone, Debug, Coding)] pub enum Loaded { Code(String), Collection(Vec), } #[derive(Clone, Debug, Coding, Hierarchy)] #[extends(HostExtReq)] pub struct VfsRead(pub SysId, pub VfsId, pub Vec); impl Request for VfsRead { type Response = OrcResult; } #[derive(Clone, Debug, Coding)] pub enum EagerVfs { Lazy(VfsId), Eager(HashMap), }