Skip to main content

wire/
message_objects.rs

1// SPDX-License-Identifier: Apache-2.0
2use 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}