@@ -13,8 +13,7 @@ use astr::AStr;
1313use fs_err as fs;
1414use glob:: Pattern ;
1515use nix:: libc:: { S_IFDIR , S_IRGRP , S_IROTH , S_IRWXU , S_IXGRP , S_IXOTH } ;
16- use stone:: payload:: { Layout , layout} ;
17- use stone:: write:: digest;
16+ use stone:: { StoneDigestWriter , StoneDigestWriterHasher , StonePayloadLayoutFile , StonePayloadLayoutRecord } ;
1817use thiserror:: Error ;
1918
2019#[ derive( Debug , Clone , Eq , PartialEq ) ]
@@ -72,7 +71,7 @@ impl Collector {
7271 }
7372
7473 /// Produce a [`PathInfo`] from the provided [`Path`]
75- pub fn path ( & self , path : & Path , hasher : & mut digest :: Hasher ) -> Result < PathInfo , Error > {
74+ pub fn path ( & self , path : & Path , hasher : & mut StoneDigestWriterHasher ) -> Result < PathInfo , Error > {
7675 let metadata = fs:: metadata ( path) ?;
7776 self . path_with_metadata ( path. to_path_buf ( ) , & metadata, hasher)
7877 }
@@ -81,7 +80,7 @@ impl Collector {
8180 & self ,
8281 path : PathBuf ,
8382 metadata : & Metadata ,
84- hasher : & mut digest :: Hasher ,
83+ hasher : & mut StoneDigestWriterHasher ,
8584 ) -> Result < PathInfo , Error > {
8685 let target_path = Path :: new ( "/" ) . join ( path. strip_prefix ( & self . root ) . expect ( "path is ancestor of root" ) ) ;
8786
@@ -96,7 +95,7 @@ impl Collector {
9695 pub fn enumerate_paths (
9796 & self ,
9897 subdir : Option < ( PathBuf , Metadata ) > ,
99- hasher : & mut digest :: Hasher ,
98+ hasher : & mut StoneDigestWriterHasher ,
10099 ) -> Result < Vec < PathInfo > , Error > {
101100 let mut paths = vec ! [ ] ;
102101
@@ -139,7 +138,7 @@ impl Collector {
139138pub struct PathInfo {
140139 pub path : PathBuf ,
141140 pub target_path : PathBuf ,
142- pub layout : Layout ,
141+ pub layout : StonePayloadLayoutRecord ,
143142 pub size : u64 ,
144143 pub package : String ,
145144}
@@ -149,7 +148,7 @@ impl PathInfo {
149148 path : PathBuf ,
150149 target_path : PathBuf ,
151150 metadata : & Metadata ,
152- hasher : & mut digest :: Hasher ,
151+ hasher : & mut StoneDigestWriterHasher ,
153152 package : String ,
154153 ) -> Result < Self , Error > {
155154 let layout = layout_from_metadata ( & path, & target_path, metadata, hasher) ?;
@@ -163,19 +162,19 @@ impl PathInfo {
163162 } )
164163 }
165164
166- pub fn restat ( & mut self , hasher : & mut digest :: Hasher ) -> Result < ( ) , Error > {
165+ pub fn restat ( & mut self , hasher : & mut StoneDigestWriterHasher ) -> Result < ( ) , Error > {
167166 let metadata = fs:: metadata ( & self . path ) ?;
168167 self . layout = layout_from_metadata ( & self . path , & self . target_path , & metadata, hasher) ?;
169168 self . size = metadata. size ( ) ;
170169 Ok ( ( ) )
171170 }
172171
173172 pub fn is_file ( & self ) -> bool {
174- matches ! ( self . layout. entry , layout :: Entry :: Regular ( _, _) )
173+ matches ! ( self . layout. file , StonePayloadLayoutFile :: Regular ( _, _) )
175174 }
176175
177176 pub fn file_hash ( & self ) -> Option < u128 > {
178- if let layout :: Entry :: Regular ( hash, _) = & self . layout . entry {
177+ if let StonePayloadLayoutFile :: Regular ( hash, _) = & self . layout . file {
179178 Some ( * hash)
180179 } else {
181180 None
@@ -200,8 +199,8 @@ fn layout_from_metadata(
200199 path : & Path ,
201200 target_path : & Path ,
202201 metadata : & Metadata ,
203- hasher : & mut digest :: Hasher ,
204- ) -> Result < Layout , Error > {
202+ hasher : & mut StoneDigestWriterHasher ,
203+ ) -> Result < StonePayloadLayoutRecord , Error > {
205204 // Strip /usr
206205 let target: AStr = target_path
207206 . strip_prefix ( "/usr" )
@@ -211,29 +210,29 @@ fn layout_from_metadata(
211210
212211 let file_type = metadata. file_type ( ) ;
213212
214- Ok ( Layout {
213+ Ok ( StonePayloadLayoutRecord {
215214 uid : metadata. uid ( ) ,
216215 gid : metadata. gid ( ) ,
217216 mode : metadata. mode ( ) ,
218217 tag : 0 ,
219- entry : if file_type. is_symlink ( ) {
218+ file : if file_type. is_symlink ( ) {
220219 let source = fs:: read_link ( path) ?;
221220
222- layout :: Entry :: Symlink ( source. to_string_lossy ( ) . into ( ) , target)
221+ StonePayloadLayoutFile :: Symlink ( source. to_string_lossy ( ) . into ( ) , target)
223222 } else if file_type. is_dir ( ) {
224- layout :: Entry :: Directory ( target)
223+ StonePayloadLayoutFile :: Directory ( target)
225224 } else if file_type. is_char_device ( ) {
226- layout :: Entry :: CharacterDevice ( target)
225+ StonePayloadLayoutFile :: CharacterDevice ( target)
227226 } else if file_type. is_block_device ( ) {
228- layout :: Entry :: BlockDevice ( target)
227+ StonePayloadLayoutFile :: BlockDevice ( target)
229228 } else if file_type. is_fifo ( ) {
230- layout :: Entry :: Fifo ( target)
229+ StonePayloadLayoutFile :: Fifo ( target)
231230 } else if file_type. is_socket ( ) {
232- layout :: Entry :: Socket ( target)
231+ StonePayloadLayoutFile :: Socket ( target)
233232 } else {
234233 hasher. reset ( ) ;
235234
236- let mut digest_writer = digest :: Writer :: new ( io:: sink ( ) , hasher) ;
235+ let mut digest_writer = StoneDigestWriter :: new ( io:: sink ( ) , hasher) ;
237236 let mut file = fs:: File :: open ( path) ?;
238237
239238 // Copy bytes to null sink so we don't
@@ -242,7 +241,7 @@ fn layout_from_metadata(
242241
243242 let hash = hasher. digest128 ( ) ;
244243
245- layout :: Entry :: Regular ( hash, target)
244+ StonePayloadLayoutFile :: Regular ( hash, target)
246245 } ,
247246 } )
248247}
0 commit comments