1use objects::object::ContentHash;
3use serde::{Deserialize, Serialize};
4
5use crate::{ObjectId, ObjectInfo, ObjectType};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct WantObjects {
9 pub wants: Vec<ObjectRequest>,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct ObjectRequest {
14 pub id: ObjectId,
15 pub have_base: Option<ContentHash>,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct HaveObjects {
20 pub haves: Vec<ObjectId>,
21 pub missing: Vec<ObjectId>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct SendObjects {
26 pub objects: Vec<ObjectInfo>,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct ObjectData {
31 pub id: ObjectId,
32 pub obj_type: ObjectType,
33 pub data: Vec<u8>,
34 pub is_delta: bool,
35}