OK5CKW6E72XAZTRJUWSKFPJBPZYNIWQGVXFR5ARSJHB6EIBMU6WQC AATEG4HIQU76ZKAOEHG2QUE75HB2QASKDQIA7CSU5AIMXWZICJ2AC DBIA6R5X4LFELIDAIYAB4HRVZNVQQRH4HVFNCAMTP3TH26YVOUJAC B75B3UUKURXWL6VBIJK3IKNDBH6MOLECYDOZR5LSQQILVMKFMIAAC SMYRM2CFBM7BJYHAUIJYTSORS2V6O5GAHRSY2K6ELGOM3OF5VHCQC NRQSXJVRWJ66JIHK73QZJMMVDLV3WFLG3HLBCRPAJYYEX252DL2QC 5TH3AA466T4JIICGT3LTLJ554X62KF36XZUXKR5MIAXVWAGQQHWQC ZJPL7VNQEYASQ7QIUCR3X2IPWF5MAR6WX7VY6OWMRDMPJK7GYWIAC U4JRHEA7EI7FYONBVNHNJ3AFEDJE3OUQHAG4GMN3TQ4KLNJK7UIAC CT3VONTOEWK5SOJ64L7II6NUITVM2S73UEC4UXXVAKBB4JEUOXKQC Y4AQJ5RDUWK2F4WBVYTWVU6XCUZGL7JYFK34CT7FBMXBJ24ICSHAC 6ODVKCN4BSPLQJYHHDEZZQACKE5WGVYUWC7IDXN3D3HMBC6RBA7QC 2USDM5CH2K26B4DB5YEMVIT43NLY5PNQJZHW2HK2COXQZ75QTLOAC MLUGR2LLRTENFPCXBML4VQKWNE5QURMC7RJDE3AQYZXAJWOWILDQC C5VVJ5SOXXMIWNHCY4BLV5JOXDLDSFGP5QI7WWB74XIZ4JJMIBVAC USO5PZWOGMYH6BUHQO3AQHDQBQ4EO27OSSAVPUWCUIZVFO3PNFJQC ES2PMPT47CHTONTR7GAYXTU5LURMPC5W5BQ3YGOXMXT57NZHVHJQC F3GMCMWTQ533LIP63WD7Z6JGUIHINCZOBMRT6EBIDWXGQY7Y7IYQC 3H2BGWRGDDJFRLLFN2QIMSSWXB2BYXLKLL2E25E3CGIYQ55VY2PAC VSG6UWDYMGCJHOVD5BI5UNAAYLVL6REAAJLI7OXUGCSXLJZTV36QC RQRFFUF6EN2RMBL5ITLF4HYJPGNMYXNTV4YNWH2BUCVZQE5KY2AQC mod floor;use floor::{Floor, MaterialStorage, Plank, Row};/// The length of a new plank//static PLANKMAX: u32 = 2200;//static PLANKMAX: u32 = 2010;/// The smallest allowable plank length//static PLANKMIN: u32 = 200;//static PLANKWIDTH: u32 = 185;//static PLAY: u32 = 20;//static SAWBLADE: u32 = 10;//static ROOMLENGTH: u32 = 3800;//static ROOMLENGTH: u32 = 1000;//static ROOMDEPTH: u32 = 555;//static ROOMDEPTH: u32 = 2800;/// The length of a new plankstatic PLANKMAX: u32 = 2200;//static PLANKMAX: u32 = 1900;/// The smallest allowable plank lengthstatic PLANKMIN: u32 = 200;static PLANKWIDTH: u32 = 100;static PLAY: u32 = 5;static SAWBLADE: u32 = 10;//static ROOMLENGTH: u32 = 3800;static ROOMLENGTH: u32 = 5000;static ROOMDEPTH: u32 = 1000;//static ROOMDEPTH: u32 = 2800;
use parkett::constants::{PLANKMAX, PLANKMIN, PLANKWIDTH, PLAY, ROOMDEPTH, ROOMLENGTH, SAWBLADE,};use parkett::{Floor, MaterialStorage, Row};
// Create a pool of planks, modify the constant AVAILABLEPLANKS// to the total number of full length available plankslet ms = MaterialStorage::default();
// Create a pool of planks// To change, modify constants.rslet mut ms = MaterialStorage::default();//println!("MS: {:#?}", ms);
//println!("coverage: {:#?}", floor.get_coverage());// TODO, deal with unwrapfloor.add(build_row(&mut ms).unwrap());floor.add_coverage(PLANKWIDTH);
match build_row(&mut ms) {Some(row) => {floor.add(row);floor.add_coverage(PLANKWIDTH);}None => {println!("Error: Unable to add more rows.\nExiting");return ();}}
// Annotate the planks in the beginning and end as endpiecesif let Some(plank) = row.planks_mut().first_mut() {plank.set_endpiece()}if let Some(plank) = row.planks_mut().last_mut() {plank.set_endpiece()}
//println!("Row: {:#?}", row);
/// The length of a new plankpub static PLANKMAX: u32 = 2200;/// The smallest allowable plank lengthpub static PLANKMIN: u32 = 200;/// Width of a plankpub static PLANKWIDTH: u32 = 185;/// Amount of desired play between end planks/// and the wallsspub static PLAY: u32 = 5;/// Size of the sawblade, how much material is lostpub static SAWBLADE: u32 = 10;/// Length of the roompub static ROOMLENGTH: u32 = 4760;/// Depth of the roompub static ROOMDEPTH: u32 = 2800;/// How many planks are available?pub static AVAILABLEPLANKS: u32 = 30;