1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const VERSIONBITS_TOP_MASK: u32 = 0xe0000000;
const VERSIONBITS_TOP_BITS: u32 = 0x20000000;

#[derive(Debug, Clone, Copy)]
pub struct Deployment {
	/// Deployment's name
	pub name: &'static str,
	/// Bit
	pub bit: u8,
	/// Start time
	pub start_time: u32,
	/// Timeout
	pub timeout: u32,
	/// Activation block number (if already activated)
	pub activation: Option<u32>,
}

impl Deployment {
	pub fn matches(&self, version: u32) -> bool {
		(version & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS && (version & (1 << self.bit)) != 0
	}
}