summaryrefslogtreecommitdiff
path: root/shared
diff options
context:
space:
mode:
Diffstat (limited to 'shared')
-rw-r--r--shared/src/packets.rs7
-rw-r--r--shared/src/store.rs4
2 files changed, 6 insertions, 5 deletions
diff --git a/shared/src/packets.rs b/shared/src/packets.rs
index 093247d..de69ffd 100644
--- a/shared/src/packets.rs
+++ b/shared/src/packets.rs
@@ -53,7 +53,7 @@ pub enum Packet {
Connect(u128),
Disconnect,
RequestResource(Resource),
- RespondResource(Data),
+ RespondResource(Resource, Data),
Add(Object, Resource<Prefab>),
Remove(Object),
Position(Object, Vec3A, Vec3A),
@@ -83,8 +83,9 @@ impl Packet {
w.write_all(&[0x01])?;
w.write_all(&resource.0)?;
}
- Packet::RespondResource(data) => {
+ Packet::RespondResource(resource, data) => {
w.write_all(&[0x02])?;
+ resource.write(w)?;
data.write(w)?;
}
Packet::Add(object, resource) => {
@@ -142,7 +143,7 @@ impl ReadWrite for Packet {
Ok(match u8::read(r)? {
0x00 => Packet::Connect(read_u128(r)?),
0x01 => Packet::RequestResource(Resource::read(r)?),
- 0x02 => Packet::RespondResource(Data::read(r)?),
+ 0x02 => Packet::RespondResource(Resource::read(r)?, Data::read(r)?),
0x03 => Packet::Add(Object::read(r)?, Resource::read(r)?),
0x04 => Packet::Remove(Object::read(r)?),
0x05 => Packet::Position(
diff --git a/shared/src/store.rs b/shared/src/store.rs
index 86ae053..548a402 100644
--- a/shared/src/store.rs
+++ b/shared/src/store.rs
@@ -119,12 +119,12 @@ impl ResourceStore {
}
Ok(key)
}
- pub fn iter(&self, mut cb: impl FnMut(&[u8])) -> Result<()> {
+ pub fn iter(&self, mut cb: impl FnMut(Resource, &[u8])) -> Result<()> {
match self {
ResourceStore::Redb(_database) => todo!(),
ResourceStore::Filesystem(_root) => todo!(),
ResourceStore::Memory(mutex) => {
- mutex.lock().unwrap().values().for_each(|v| cb(v));
+ mutex.lock().unwrap().iter().for_each(|(k, v)| cb(*k, v));
Ok(())
}
}