platform_version/version/fee/storage/
mod.rs1use bincode::{Decode, Encode};
2
3pub mod v1;
4
5#[derive(Clone, Debug, Encode, Decode, Default, PartialEq, Eq)]
6pub struct FeeStorageVersion {
7 pub storage_disk_usage_credit_per_byte: u64,
8 pub storage_processing_credit_per_byte: u64,
9 pub storage_load_credit_per_byte: u64,
10 pub non_storage_load_credit_per_byte: u64,
11 pub storage_seek_cost: u64,
12 pub ttl_ephemeral_disk_usage_credit_per_byte: u64,
20}
21
22#[cfg(test)]
23mod tests {
24 use super::FeeStorageVersion;
25
26 #[test]
27 fn test_fee_storage_version_equality() {
29 let version1 = FeeStorageVersion {
30 storage_disk_usage_credit_per_byte: 1,
31 storage_processing_credit_per_byte: 2,
32 storage_load_credit_per_byte: 3,
33 non_storage_load_credit_per_byte: 4,
34 storage_seek_cost: 5,
35 ttl_ephemeral_disk_usage_credit_per_byte: 6,
36 };
37
38 let version2 = FeeStorageVersion {
39 storage_disk_usage_credit_per_byte: 1,
40 storage_processing_credit_per_byte: 2,
41 storage_load_credit_per_byte: 3,
42 non_storage_load_credit_per_byte: 4,
43 storage_seek_cost: 5,
44 ttl_ephemeral_disk_usage_credit_per_byte: 6,
45 };
46
47 assert_eq!(version1, version2, "FeeStorageVersion equality test failed. If a field was added or removed, update the Eq implementation.");
49
50 let version3 = FeeStorageVersion {
53 ttl_ephemeral_disk_usage_credit_per_byte: 7,
54 ..version2.clone()
55 };
56 assert_ne!(
57 version1, version3,
58 "FeeStorageVersion equality must distinguish ttl_ephemeral_disk_usage_credit_per_byte"
59 );
60 }
61}