asimov_protocol/
peer_hello.rs1use super::NodeFeatureSet;
4use serde::{Deserialize, Serialize};
5
6pub const CURRENT_VERSION: u16 = 0;
7pub const MINIMUM_VERSION: u16 = 0;
8pub const MAXIMUM_VERSION: u16 = CURRENT_VERSION;
9pub const REQUIRED_FEATURES: &[&str] = &[];
10pub const SUPPORTED_FEATURES: &[&str] = &[];
11
12#[derive(Clone, Debug, Eq, Serialize, Deserialize, PartialEq)]
13pub struct PeerHello {
14 pub minimum_version: u16,
15 pub maximum_version: u16,
16 pub required_features: NodeFeatureSet<'static>,
17 pub supported_features: NodeFeatureSet<'static>,
18}
19
20impl Default for PeerHello {
21 fn default() -> Self {
22 Self {
23 minimum_version: MINIMUM_VERSION,
24 maximum_version: MAXIMUM_VERSION,
25 required_features: NodeFeatureSet::Borrowed(REQUIRED_FEATURES),
26 supported_features: NodeFeatureSet::Borrowed(SUPPORTED_FEATURES),
27 }
28 }
29}