From 34a7dd17fa4f55a63d305af57b30ec225f7c97e4 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Wed, 7 Dec 2022 10:44:27 -0500 Subject: [PATCH] Start day 7 part 1 --- day7/Cargo.lock | 7 + day7/Cargo.toml | 8 + day7/src/input.txt | 1083 ++++++++++++++++++++++++++++++++++++++++++++ day7/src/main.rs | 72 +++ 4 files changed, 1170 insertions(+) create mode 100644 day7/Cargo.lock create mode 100644 day7/Cargo.toml create mode 100644 day7/src/input.txt create mode 100644 day7/src/main.rs diff --git a/day7/Cargo.lock b/day7/Cargo.lock new file mode 100644 index 0000000..7af9b93 --- /dev/null +++ b/day7/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day7" +version = "0.1.0" diff --git a/day7/Cargo.toml b/day7/Cargo.toml new file mode 100644 index 0000000..b170ccb --- /dev/null +++ b/day7/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day7" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day7/src/input.txt b/day7/src/input.txt new file mode 100644 index 0000000..7b80965 --- /dev/null +++ b/day7/src/input.txt @@ -0,0 +1,1083 @@ +$ cd / +$ ls +dir btsgrbd +3868 cprq.fmm +dir gcbpcf +dir hfm +324644 lthcng.gnf +133181 nblfzrb.mrr +140568 sfrbjmmh.jnj +dir tfsh +dir vlsqgrw +202279 vmpgqbcd +$ cd btsgrbd +$ ls +dir cmfdm +dir cqd +dir gvwvs +dir nblfzrb +dir nfm +293979 qwnml.bqn +159220 sdwnsgwv.mjm +327978 vzgwwjq.zbp +155479 zvspnvfr.zbc +$ cd cmfdm +$ ls +dir gldnjj +dir vhf +$ cd gldnjj +$ ls +dir dvght +93750 lwvtzd.pws +176529 sdwnsgwv.mjm +100111 vmpgqbcd +$ cd dvght +$ ls +dir tfbzq +$ cd tfbzq +$ ls +276592 tcghw.srg +$ cd .. +$ cd .. +$ cd .. +$ cd vhf +$ ls +240217 hfm.rfp +dir nblfzrb +$ cd nblfzrb +$ ls +160378 jhc +$ cd .. +$ cd .. +$ cd .. +$ cd cqd +$ ls +305358 bnddfgrb +dir dwqncqp +dir hnnfdtbh +dir jhc +dir nblfzrb +327762 scnm.qbf +165080 vmpgqbcd +190041 vzgwwjq.zbp +dir zwv +$ cd dwqncqp +$ ls +122570 slpgmhv +278461 zlnbcwr +$ cd .. +$ cd hnnfdtbh +$ ls +334830 gfprhn.rjj +$ cd .. +$ cd jhc +$ ls +179593 fgb.btb +$ cd .. +$ cd nblfzrb +$ ls +dir clbcgvhc +dir jhc +dir lsrnz +dir mctd +$ cd clbcgvhc +$ ls +285825 hnn +238272 nblfzrb.wvr +$ cd .. +$ cd jhc +$ ls +99731 nblfzrb.svz +$ cd .. +$ cd lsrnz +$ ls +257843 fsthnpmd +$ cd .. +$ cd mctd +$ ls +278117 zlnbcwr +$ cd .. +$ cd .. +$ cd zwv +$ ls +40349 jhc +dir pqwml +173804 sdwnsgwv.mjm +$ cd pqwml +$ ls +193573 hbzvzwpr +$ cd .. +$ cd .. +$ cd .. +$ cd gvwvs +$ ls +dir gjslw +dir gwz +dir ljvrjp +dir sltlpb +dir vbsnq +$ cd gjslw +$ ls +dir gzbm +$ cd gzbm +$ ls +dir fst +dir gpjz +dir gzd +dir hfm +$ cd fst +$ ls +99806 mqpg +$ cd .. +$ cd gpjz +$ ls +dir dnsvsp +218828 jhc.dfd +$ cd dnsvsp +$ ls +dir vmdbpwj +dir zvspnvfr +$ cd vmdbpwj +$ ls +258373 jhc +$ cd .. +$ cd zvspnvfr +$ ls +18241 vzgwwjq.zbp +$ cd .. +$ cd .. +$ cd .. +$ cd gzd +$ ls +20383 chdfwj +63309 prrlv.rvn +$ cd .. +$ cd hfm +$ ls +291753 qhh +$ cd .. +$ cd .. +$ cd .. +$ cd gwz +$ ls +29042 hfm.hpn +184043 mpc +230539 sdwnsgwv.mjm +803 zlnbcwr +$ cd .. +$ cd ljvrjp +$ ls +44312 pfltqw.zvc +$ cd .. +$ cd sltlpb +$ ls +321945 sdwnsgwv.mjm +$ cd .. +$ cd vbsnq +$ ls +7774 twbbg.ftq +109546 zpqbp.cts +$ cd .. +$ cd .. +$ cd nblfzrb +$ ls +89034 fst +338143 sdwnsgwv.mjm +130661 vmpgqbcd +130071 vrj.zlb +$ cd .. +$ cd nfm +$ ls +327853 fwmfmtt.hdg +151272 vdjs +dir wznwjfw +75692 zlnbcwr +$ cd wznwjfw +$ ls +dir nblfzrb +dir zvspnvfr +$ cd nblfzrb +$ ls +271817 fpqfgs.gdl +$ cd .. +$ cd zvspnvfr +$ ls +dir hfm +dir mdftsf +$ cd hfm +$ ls +dir fsgdq +dir grj +$ cd fsgdq +$ ls +244565 sdwnsgwv.mjm +$ cd .. +$ cd grj +$ ls +200989 rdvvrjf.fwz +$ cd .. +$ cd .. +$ cd mdftsf +$ ls +dir fnzztppm +21425 jhc.mtl +$ cd fnzztppm +$ ls +159263 bvf +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd gcbpcf +$ ls +295086 gfprhn.rjj +dir ldwwls +dir nblfzrb +dir zvspnvfr +dir zwv +$ cd ldwwls +$ ls +175977 sdwnsgwv.mjm +$ cd .. +$ cd nblfzrb +$ ls +dir mzshzw +$ cd mzshzw +$ ls +dir mllqf +$ cd mllqf +$ ls +113563 hfm.svt +$ cd .. +$ cd .. +$ cd .. +$ cd zvspnvfr +$ ls +84524 fst +dir jhc +dir llnqc +126979 nnrwp.shv +dir npjd +dir nptwgdbn +133618 qtn +dir rddftb +dir thfhbhz +129882 vmpgqbcd +170834 zlnbcwr +$ cd jhc +$ ls +dir pjlj +dir tfljr +$ cd pjlj +$ ls +dir jhc +$ cd jhc +$ ls +dir hqzm +$ cd hqzm +$ ls +159505 zlnbcwr +$ cd .. +$ cd .. +$ cd .. +$ cd tfljr +$ ls +dir dwhjmg +$ cd dwhjmg +$ ls +dir nblfzrb +$ cd nblfzrb +$ ls +194723 ppptz +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd llnqc +$ ls +194898 vzgwwjq.zbp +$ cd .. +$ cd npjd +$ ls +dir blvfljfn +dir dzpplzl +101118 gfprhn.rjj +116164 hbbnl.nvz +211685 hfm +dir jhc +dir mcnftw +dir nblfzrb +dir ncpchrj +dir qrdczsdf +165190 ttbj +190954 vzgwwjq.zbp +$ cd blvfljfn +$ ls +283460 gfprhn.rjj +148100 sqljld +$ cd .. +$ cd dzpplzl +$ ls +62592 jjlvdvq.mqp +$ cd .. +$ cd jhc +$ ls +90578 dvd.wvl +165955 zqplggf +$ cd .. +$ cd mcnftw +$ ls +157908 gbqpdt +dir jsnrcfbv +dir nblfzrb +322169 qlmd.dbq +dir zvspnvfr +$ cd jsnrcfbv +$ ls +dir gffj +75682 hfm +dir pmfwlzn +160494 vzgwwjq.zbp +$ cd gffj +$ ls +dir nblfzrb +9340 pcqs +$ cd nblfzrb +$ ls +216547 sdwnsgwv.mjm +135235 zvspnvfr.nvs +$ cd .. +$ cd .. +$ cd pmfwlzn +$ ls +137069 jbsmwm +$ cd .. +$ cd .. +$ cd nblfzrb +$ ls +dir hflnbmcd +11899 vzgwwjq.zbp +334607 whmq.ftc +347595 zlnbcwr +$ cd hflnbmcd +$ ls +275968 sdwnsgwv.mjm +$ cd .. +$ cd .. +$ cd zvspnvfr +$ ls +75213 vmpgqbcd +$ cd .. +$ cd .. +$ cd nblfzrb +$ ls +dir jhc +$ cd jhc +$ ls +dir jhc +$ cd jhc +$ ls +218236 nblfzrb.mbc +$ cd .. +$ cd .. +$ cd .. +$ cd ncpchrj +$ ls +dir cnswqjjd +dir gvmlgjnj +$ cd cnswqjjd +$ ls +134879 qpzfr +30171 zvspnvfr +$ cd .. +$ cd gvmlgjnj +$ ls +209285 fst +$ cd .. +$ cd .. +$ cd qrdczsdf +$ ls +201094 zlnbcwr +$ cd .. +$ cd .. +$ cd nptwgdbn +$ ls +217555 gfprhn.rjj +66582 mrhhpr.gdg +$ cd .. +$ cd rddftb +$ ls +205347 sdwnsgwv.mjm +195976 vzgwwjq.zbp +$ cd .. +$ cd thfhbhz +$ ls +321628 zlnbcwr +$ cd .. +$ cd .. +$ cd zwv +$ ls +dir lnqb +311249 mtv +dir tnrtjrlz +$ cd lnqb +$ ls +dir vjtnjt +$ cd vjtnjt +$ ls +66715 hfm +$ cd .. +$ cd .. +$ cd tnrtjrlz +$ ls +270833 jhc.vpj +$ cd .. +$ cd .. +$ cd .. +$ cd hfm +$ ls +220753 fst.tfn +dir hfm +154659 mnzlvc.jzw +dir nblfzrb +dir nrqhstc +dir vwc +dir wlpdphhg +dir zpbh +dir zvspnvfr +160091 zvspnvfr.zqt +$ cd hfm +$ ls +dir fst +dir mfmcqhbz +dir pdblpszb +$ cd fst +$ ls +dir cpll +dir fst +dir nblfzrb +dir sbnplvz +dir vsd +307662 wlzbsdh +194873 zlnbcwr +$ cd cpll +$ ls +13452 pwcmhcf.lwz +$ cd .. +$ cd fst +$ ls +dir nblfzrb +dir rqssg +$ cd nblfzrb +$ ls +dir ltrc +dir nblfzrb +326613 vhwnz +244908 vzgwwjq.zbp +$ cd ltrc +$ ls +163670 zlnbcwr +$ cd .. +$ cd nblfzrb +$ ls +dir brpzhf +61846 fst +66356 vccrmc.jbd +72767 vmpgqbcd +$ cd brpzhf +$ ls +224488 mttr.szf +$ cd .. +$ cd .. +$ cd .. +$ cd rqssg +$ ls +131534 bfmhl.cwj +261143 hhznnd +dir nmb +74816 vnmwgflj.rhp +251308 wdzfzcss.fdc +$ cd nmb +$ ls +264421 fst.twf +dir jng +81009 rnt.dlp +288053 sftvd +dir vfc +$ cd jng +$ ls +8014 gfprhn.rjj +168688 ppn.qbv +$ cd .. +$ cd vfc +$ ls +dir bhgstrdl +138108 dggwnqp.fpl +303194 gfprhn.rjj +$ cd bhgstrdl +$ ls +102559 fst.nrv +269697 trqrlrw.jmc +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd nblfzrb +$ ls +dir bcj +dir cqjmmr +256392 fst.tjf +7079 gfprhn.rjj +dir gqm +dir hbqfms +dir nmgbfhmq +57962 pvdtbdj +117035 sdwnsgwv.mjm +64208 zlnbcwr +$ cd bcj +$ ls +dir nblfzrb +$ cd nblfzrb +$ ls +149417 zvspnvfr.dqv +$ cd .. +$ cd .. +$ cd cqjmmr +$ ls +147054 fcq.mmz +dir fst +dir hfm +110840 jcsjjj.mvg +75746 vzgwwjq.zbp +333085 zlnbcwr +$ cd fst +$ ls +114747 vmpgqbcd +$ cd .. +$ cd hfm +$ ls +dir nvvppmls +dir phpq +dir rld +$ cd nvvppmls +$ ls +dir cdsmgjdb +$ cd cdsmgjdb +$ ls +158739 hfm.nmw +$ cd .. +$ cd .. +$ cd phpq +$ ls +274026 hfm.hjj +$ cd .. +$ cd rld +$ ls +237915 hsnngd.tqw +$ cd .. +$ cd .. +$ cd .. +$ cd gqm +$ ls +188469 vzgwwjq.zbp +$ cd .. +$ cd hbqfms +$ ls +127163 fst +$ cd .. +$ cd nmgbfhmq +$ ls +257647 gczqzbbd +dir hfm +dir zvspnvfr +$ cd hfm +$ ls +267774 gbtwdctn.drw +$ cd .. +$ cd zvspnvfr +$ ls +189769 gfprhn.rjj +$ cd .. +$ cd .. +$ cd .. +$ cd sbnplvz +$ ls +dir bln +dir fst +dir hdv +dir jhc +31790 jhc.zvm +102276 mmmjpp +dir zdwzgnb +$ cd bln +$ ls +161029 zlnbcwr +$ cd .. +$ cd fst +$ ls +333565 fst +$ cd .. +$ cd hdv +$ ls +dir zvpp +$ cd zvpp +$ ls +143723 gfprhn.rjj +$ cd .. +$ cd .. +$ cd jhc +$ ls +dir hfm +dir hnqpwnfb +dir jqgfcmjn +dir mqj +312345 psdd.ftf +dir slsq +319904 thvhdmm.rpq +317429 vzgwwjq.zbp +$ cd hfm +$ ls +249321 bwzrcghg.zwq +38324 zlnbcwr +149647 zvspnvfr.jwn +$ cd .. +$ cd hnqpwnfb +$ ls +113118 bdmtgt +299110 bthznc.bjt +$ cd .. +$ cd jqgfcmjn +$ ls +176495 hfm.wnw +333817 mqds +208755 vqsmz.cbd +298875 zltfds +$ cd .. +$ cd mqj +$ ls +186649 brfmpbwn +43322 cgdhzzl.bvg +56230 zlnbcwr +$ cd .. +$ cd slsq +$ ls +dir dtsg +343453 rjgvt.sgc +313784 vmpgqbcd +$ cd dtsg +$ ls +308070 zvspnvfr.dqq +$ cd .. +$ cd .. +$ cd .. +$ cd zdwzgnb +$ ls +dir zvspnvfr +$ cd zvspnvfr +$ ls +278754 glqszhnp +199713 sdwnsgwv.mjm +$ cd .. +$ cd .. +$ cd .. +$ cd vsd +$ ls +17978 fdrg.cft +320284 sdwnsgwv.mjm +230059 tpfmtww.jbs +168301 vmpgqbcd +$ cd .. +$ cd .. +$ cd mfmcqhbz +$ ls +dir fst +dir lwlsnt +dir mqqdst +$ cd fst +$ ls +dir cln +235621 hfm.mhr +4347 qwfwj +226297 zlnbcwr +$ cd cln +$ ls +dir cfz +dir njptzz +dir rcbps +161994 rjl.pfg +dir tcqttb +22809 vmpgqbcd +225782 zvspnvfr.gbw +$ cd cfz +$ ls +168184 zvspnvfr +$ cd .. +$ cd njptzz +$ ls +286155 hfm.mjh +$ cd .. +$ cd rcbps +$ ls +256675 vzgwwjq.zbp +$ cd .. +$ cd tcqttb +$ ls +91505 flmgglv.gjw +270377 ftbjzt.lcm +$ cd .. +$ cd .. +$ cd .. +$ cd lwlsnt +$ ls +dir ztrcwjw +$ cd ztrcwjw +$ ls +342059 vjcldgfj.twb +$ cd .. +$ cd .. +$ cd mqqdst +$ ls +326143 dhlhzzj.sbh +dir lmsbg +13108 nblfzrb.nnr +256325 vzgwwjq.zbp +146133 zlnbcwr +$ cd lmsbg +$ ls +282223 zvspnvfr.zwq +$ cd .. +$ cd .. +$ cd .. +$ cd pdblpszb +$ ls +167164 sdwnsgwv.mjm +$ cd .. +$ cd .. +$ cd nblfzrb +$ ls +161555 zlnbcwr +$ cd .. +$ cd nrqhstc +$ ls +316797 gfprhn.rjj +263838 nblfzrb.cjr +dir pppmp +dir shcwlggz +$ cd pppmp +$ ls +dir fst +328237 gfprhn.rjj +288094 hzv.prf +260275 pcnhmmw +214496 pptjlrn.pls +dir tqjgrc +315647 vmbvl.zvh +$ cd fst +$ ls +4441 dtt +115073 jhdqj.tpt +337681 zlnbcwr +$ cd .. +$ cd tqjgrc +$ ls +6491 zlnbcwr +$ cd .. +$ cd .. +$ cd shcwlggz +$ ls +251509 gfprhn.rjj +331578 slsnbzm +158534 wlchqtzj.ljz +341686 wmdvjs.tjb +$ cd .. +$ cd .. +$ cd vwc +$ ls +94599 gfprhn.rjj +298110 hql.hss +dir rsrfc +230201 vmpgqbcd +dir zcsqst +dir zrz +58810 zvspnvfr +$ cd rsrfc +$ ls +dir fst +$ cd fst +$ ls +259462 bflpjwd.wbj +177686 cvh.fnr +$ cd .. +$ cd .. +$ cd zcsqst +$ ls +344114 bbbd.ncl +282111 gfprhn.rjj +327171 jhc +43867 qwzwmffq.chl +$ cd .. +$ cd zrz +$ ls +dir zvspnvfr +$ cd zvspnvfr +$ ls +dir fst +$ cd fst +$ ls +218902 fst.jmg +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd wlpdphhg +$ ls +dir lllph +41390 wmn +$ cd lllph +$ ls +167740 bbfqftlg.pll +$ cd .. +$ cd .. +$ cd zpbh +$ ls +63568 jhc.tfs +dir nblfzrb +dir rlsvrfrb +29977 vzgwwjq.zbp +dir zvspnvfr +$ cd nblfzrb +$ ls +154990 gbvpw.bpm +dir hfm +148488 jhc +301795 jhc.zlg +dir nblfzrb +115285 rvhcfsrw.crj +320034 wsqdt +$ cd hfm +$ ls +141530 vmpgqbcd +$ cd .. +$ cd nblfzrb +$ ls +dir rnhn +$ cd rnhn +$ ls +46251 sdwnsgwv.mjm +$ cd .. +$ cd .. +$ cd .. +$ cd rlsvrfrb +$ ls +140923 hfm +228981 zvspnvfr.mvl +$ cd .. +$ cd zvspnvfr +$ ls +182280 gnhh.hpw +95206 vvlt.pgf +$ cd .. +$ cd .. +$ cd zvspnvfr +$ ls +234551 wsfjhlqc.zsj +$ cd .. +$ cd .. +$ cd tfsh +$ ls +dir fbrqvwgr +$ cd fbrqvwgr +$ ls +244821 nrhm +$ cd .. +$ cd .. +$ cd vlsqgrw +$ ls +dir dzdd +18805 fst.rjm +50694 gfprhn.rjj +55025 jlnrm +dir pnsbfz +dir qjjjgd +dir whrtnh +28406 zggjjcct.fsz +$ cd dzdd +$ ls +dir hjmv +$ cd hjmv +$ ls +91558 hfm.qcd +$ cd .. +$ cd .. +$ cd pnsbfz +$ ls +dir bmgmh +dir nblfzrb +dir zvfg +$ cd bmgmh +$ ls +dir dvh +dir mwfbthpj +dir swqbph +$ cd dvh +$ ls +dir jhc +dir jtp +85638 rzlt.llb +$ cd jhc +$ ls +dir dltqbnpq +$ cd dltqbnpq +$ ls +133426 zlnbcwr +$ cd .. +$ cd .. +$ cd jtp +$ ls +dir clh +$ cd clh +$ ls +54117 sdwnsgwv.mjm +$ cd .. +$ cd .. +$ cd .. +$ cd mwfbthpj +$ ls +75900 zwslwbr.chm +$ cd .. +$ cd swqbph +$ ls +307258 jrlljc.ntl +$ cd .. +$ cd .. +$ cd nblfzrb +$ ls +106071 zdjg.qsj +$ cd .. +$ cd zvfg +$ ls +311338 zvspnvfr.dqj +$ cd .. +$ cd .. +$ cd qjjjgd +$ ls +dir cdmwgn +dir fqmln +285733 gfprhn.rjj +dir gswsc +dir htpzdb +261929 jwc +dir lvzpqqv +dir mlc +dir mzbpmhf +329303 sdwnsgwv.mjm +76120 vmpgqbcd +$ cd cdmwgn +$ ls +dir bttff +$ cd bttff +$ ls +dir nblfzrb +$ cd nblfzrb +$ ls +346048 jhc.hzf +dir nccq +dir rwtddj +149890 sdwnsgwv.mjm +$ cd nccq +$ ls +141144 gfprhn.rjj +65628 hfm +$ cd .. +$ cd rwtddj +$ ls +dir jctw +$ cd jctw +$ ls +141075 thcfz.frn +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fqmln +$ ls +282233 cjgh +$ cd .. +$ cd gswsc +$ ls +153758 ccjg.zml +dir cllgt +257967 ctqdpq.clq +117673 jhc +258604 wqcz.tww +122135 zvspnvfr.grb +$ cd cllgt +$ ls +132862 vmpgqbcd +$ cd .. +$ cd .. +$ cd htpzdb +$ ls +dir hfm +dir mlplp +231759 nblfzrb +159823 pqpbjbqp +25382 vzgwwjq.zbp +$ cd hfm +$ ls +155413 bbbsd +288638 jhhmwq +dir lnss +$ cd lnss +$ ls +341786 zvspnvfr +$ cd .. +$ cd .. +$ cd mlplp +$ ls +256802 zhcq.gzj +$ cd .. +$ cd .. +$ cd lvzpqqv +$ ls +dir cgj +dir mdb +dir shpdtb +$ cd cgj +$ ls +74595 nblfzrb.lcc +$ cd .. +$ cd mdb +$ ls +167891 zvspnvfr.ldc +$ cd .. +$ cd shpdtb +$ ls +45889 bvff.hsf +92447 sdwnsgwv.mjm +$ cd .. +$ cd .. +$ cd mlc +$ ls +7978 mrblf +$ cd .. +$ cd mzbpmhf +$ ls +38713 jhbs +$ cd .. +$ cd .. +$ cd whrtnh +$ ls +dir jbbwzd +dir nblfzrb +$ cd jbbwzd +$ ls +88613 jhc.qqw +$ cd .. +$ cd nblfzrb +$ ls +164792 zlnbcwr diff --git a/day7/src/main.rs b/day7/src/main.rs new file mode 100644 index 0000000..1b996e1 --- /dev/null +++ b/day7/src/main.rs @@ -0,0 +1,72 @@ +use std::collections::HashMap; + +const MAX_DIR_SIZE: u128 = 100_000; + +#[derive(Debug)] +struct File { + name: String, + size: u128, +} + +impl File { + fn new(raw_line: &T) -> Self { + let raw = raw_line.to_string(); + let parts: Vec<&str> = raw.split(' ').collect(); + let size = parts[0].parse::().unwrap(); + let name = parts[1].to_string(); + + File { name, size } + } +} + +// ---------------------------------------------------------------------------- + +#[derive(Debug)] +struct Dir { + parent: String, + name: String, + files: Vec, + dirs: Vec, +} + +impl Dir { + fn new(parent: &T, name: &T) -> Self { + Dir { + parent: parent.to_string(), + name: name.to_string(), + files: Vec::new(), + dirs: Vec::new(), + } + } + + fn get_loose_files_size(&self) -> u128 { + self.files + .iter() + .map(|file| file.size) + .reduce(|accum, item| accum + item) + .unwrap() + } +} + +// ---------------------------------------------------------------------------- + +struct DirMap { + current_path: String, + map: HashMap, +} + +impl DirMap { + fn new() -> Self { + DirMap { + current_path: "/".to_string(), + map: HashMap::new(), + } + } +} + +// ---------------------------------------------------------------------------- + +fn main() { + let file_str = include_str!("input.txt"); + let path_map = DirMap::new(); +}