@@ -13,34 +13,43 @@ fn main() {
13
13
let op = args. next ( ) . unwrap ( ) ;
14
14
let file_path = args. next ( ) . unwrap ( ) ;
15
15
16
- let file = match fs:: File :: open ( & file_path) {
17
- Ok ( file) => file,
18
- Err ( err) => {
19
- println ! ( "Failed to open file '{}': {}" , file_path, err, ) ;
20
- return ;
21
- }
22
- } ;
23
- let file = match unsafe { memmap:: Mmap :: map ( & file) } {
24
- Ok ( mmap) => mmap,
25
- Err ( err) => {
26
- println ! ( "Failed to map file '{}': {}" , file_path, err, ) ;
27
- return ;
28
- }
29
- } ;
30
- let archive = match object:: read:: archive:: ArchiveFile :: parse ( & * file) {
31
- Ok ( file) => file,
32
- Err ( err) => {
33
- println ! ( "Failed to parse file '{}': {}" , file_path, err) ;
34
- return ;
35
- }
36
- } ;
37
- match op. chars ( ) . next ( ) . unwrap ( ) {
38
- 't' => {
39
- for member in archive. members ( ) {
40
- let member = member. unwrap ( ) ;
41
- println ! ( "{}" , String :: from_utf8_lossy( member. name( ) ) ) ;
16
+ for _ in 0 ..100_000 {
17
+ let file = match fs:: File :: open ( & file_path) {
18
+ Ok ( file) => file,
19
+ Err ( err) => {
20
+ println ! ( "Failed to open file '{}': {}" , file_path, err, ) ;
21
+ return ;
22
+ }
23
+ } ;
24
+
25
+ /*
26
+ let map = match unsafe { memmap::Mmap::map(&file) } {
27
+ Ok(mmap) => mmap,
28
+ Err(err) => {
29
+ println!("Failed to map file '{}': {}", file_path, err,);
30
+ return;
31
+ }
32
+ };
33
+ let data = &*map;
34
+ */
35
+
36
+ let cache = object:: ReadCache :: new ( file) ;
37
+ let data = & cache;
38
+
39
+ let archive = match object:: read:: archive:: ArchiveFile :: parse ( data) {
40
+ Ok ( data) => data,
41
+ Err ( err) => {
42
+ println ! ( "Failed to parse file '{}': {}" , file_path, err) ;
43
+ return ;
44
+ }
45
+ } ;
46
+ match op. chars ( ) . next ( ) . unwrap ( ) {
47
+ 't' => {
48
+ for member in archive. members ( ) {
49
+ member. unwrap ( ) ;
50
+ }
42
51
}
52
+ op => println ! ( "Invalid operation: {}" , op) ,
43
53
}
44
- op => println ! ( "Invalid operation: {}" , op) ,
45
54
}
46
55
}
0 commit comments