1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
use cryptonote_basic::Version; pub struct BlockFiles { pub main: String, pub index: String, pub cache: String, pub chainIndex: String, } pub enum NetType { Main, Test, } pub struct Config { pub prefix: u64, pub coinName: String, pub genesisCoinBaseTxHex: String, pub version: Version, pub files: BlockFiles, pub net: NetType, } impl Config { pub fn new( prefix: u64, files: BlockFiles, coinName: String, genesisCoinBaseTxHex: String, version: Version, net: NetType, ) -> Config { Config { prefix, coinName, files, genesisCoinBaseTxHex, version, net, } } } impl BlockFiles { pub fn new(files: [String; 4]) -> BlockFiles { BlockFiles { main: files[0].to_string(), index: files[1].to_string(), cache: files[2].to_string(), chainIndex: files[3].to_string(), } } } #[cfg(test)] mod tests { use super::*; #[test] fn should_create_coin_files() { let files = BlockFiles::new([ String::from("a"), String::from("b"), String::from("c"), String::from("d"), ]); assert!(files.main == "a"); assert!(files.index == "b"); assert!(files.cache == "c"); assert!(files.chainIndex == "d"); let config = Config::new( 0x3d, files, String::from("vigcoin"), String::from("aaa"), Version { major: 1, minor: 0, patch: 0, }, NetType::Main, ); assert!(config.coinName == "vigcoin"); } }