1- use crate :: { hardlink:: LinkPathList , size} ;
1+ use crate :: { hardlink:: LinkPathList , inode :: InodeNumber , size} ;
22use dashmap:: { iter:: Iter as DashIter , mapref:: multiple:: RefMulti , DashMap } ;
33use derive_more:: { Display , Error } ;
44use pipe_trait:: Pipe ;
@@ -8,7 +8,7 @@ use std::{fmt::Debug, path::Path};
88#[ derive( Debug , Clone ) ]
99pub struct RecordHardLinkStorage < Size > (
1010 /// Map an inode number to its size and detected paths.
11- DashMap < u64 , ( Size , LinkPathList ) > , // TODO: benchmark against Mutex<HashMap<u64 , (Size, LinkPathList)>>
11+ DashMap < InodeNumber , ( Size , LinkPathList ) > , // TODO: benchmark against Mutex<HashMap<InodeNumber , (Size, LinkPathList)>>
1212) ;
1313
1414impl < Size > RecordHardLinkStorage < Size > {
@@ -34,7 +34,7 @@ impl<Size> Default for RecordHardLinkStorage<Size> {
3434#[ display( bound( Size : Debug ) ) ]
3535#[ display( "Size for inode {ino} changed from {recorded:?} to {detected:?}" ) ]
3636pub struct SizeConflictError < Size > {
37- pub ino : u64 , // TODO: define a newtype of ino.
37+ pub ino : InodeNumber ,
3838 pub recorded : Size ,
3939 pub detected : Size ,
4040}
5252 Size : size:: Size ,
5353{
5454 /// Add an entry to the record.
55- pub ( crate ) fn add ( & self , ino : u64 , size : Size , path : & Path ) -> Result < ( ) , AddError < Size > > {
55+ pub ( crate ) fn add (
56+ & self ,
57+ ino : InodeNumber ,
58+ size : Size ,
59+ path : & Path ,
60+ ) -> Result < ( ) , AddError < Size > > {
5661 let mut size_assertion = Ok ( ( ) ) ;
5762 self . 0
5863 . entry ( ino)
@@ -77,13 +82,13 @@ where
7782#[ derive( derive_more:: Debug ) ]
7883#[ debug( bound( ) ) ]
7984#[ debug( "Iter(..)" ) ]
80- pub struct Iter < ' a , Size > ( DashIter < ' a , u64 , ( Size , LinkPathList ) > ) ;
85+ pub struct Iter < ' a , Size > ( DashIter < ' a , InodeNumber , ( Size , LinkPathList ) > ) ;
8186
8287/// [Item](Iterator::Item) of [`Iter`].
8388#[ derive( derive_more:: Debug ) ]
8489#[ debug( bound( ) ) ]
8590#[ debug( "IterItem(..)" ) ]
86- pub struct IterItem < ' a , Size > ( RefMulti < ' a , u64 , ( Size , LinkPathList ) > ) ;
91+ pub struct IterItem < ' a , Size > ( RefMulti < ' a , InodeNumber , ( Size , LinkPathList ) > ) ;
8792
8893impl < ' a , Size > Iterator for Iter < ' a , Size > {
8994 type Item = IterItem < ' a , Size > ;
@@ -94,7 +99,7 @@ impl<'a, Size> Iterator for Iter<'a, Size> {
9499
95100impl < ' a , Size > IterItem < ' a , Size > {
96101 /// Number of the inode.
97- pub fn ino ( & self ) -> u64 {
102+ pub fn ino ( & self ) -> InodeNumber {
98103 * self . 0 . key ( )
99104 }
100105
0 commit comments