@@ -176,16 +176,22 @@ impl From<H5O_type_t> for LocationType {
176
176
}
177
177
178
178
#[ derive( Clone , Copy , Debug , PartialEq , Eq ) ]
179
+ /// Information about a [`Location`]
179
180
pub struct LocationInfo {
180
181
pub fileno : u64 ,
181
182
pub token : LocationToken ,
182
183
pub loc_type : LocationType ,
183
184
pub refcount : usize ,
184
- pub atime : i64 ,
185
- pub mtime : i64 ,
186
- pub ctime : i64 ,
187
- pub btime : i64 ,
188
- pub num_attrs : usize ,
185
+ /// Not available when requesting only basic info
186
+ atime : i64 ,
187
+ /// Not available when requesting only basic info
188
+ mtime : i64 ,
189
+ /// Not available when requesting only basic info
190
+ ctime : i64 ,
191
+ /// Not available when requesting only basic info
192
+ btime : i64 ,
193
+ /// Not available when requesting only basic info
194
+ num_attrs : usize ,
189
195
}
190
196
191
197
#[ cfg( not( hdf5_1_12_0) ) ]
@@ -298,4 +304,40 @@ pub mod tests {
298
304
assert ! ( file. comment( ) . is_none( ) ) ;
299
305
} )
300
306
}
307
+
308
+ #[ test]
309
+ pub fn test_location_info ( ) {
310
+ with_tmp_file ( |file| {
311
+ let token;
312
+ {
313
+ let group = file. create_group ( "group" ) . unwrap ( ) ;
314
+ let info = group. get_info ( ) . unwrap ( ) ;
315
+ assert_eq ! ( info. refcount, 1 ) ;
316
+ assert_eq ! ( info. loc_type, LocationType :: Group ) ;
317
+ token = info. token ;
318
+ }
319
+ let group = file. open_by_token ( token) . unwrap ( ) ;
320
+ assert_eq ! ( group. name( ) , "/group" ) ;
321
+ let token;
322
+ {
323
+ let var = file. new_dataset :: < i8 > ( ) . create ( "var" ) . unwrap ( ) ;
324
+ var. new_attr :: < i16 > ( ) . create ( "attr" ) . unwrap ( ) ;
325
+ let info = var. get_info ( ) . unwrap ( ) ;
326
+ assert_eq ! ( info. refcount, 1 ) ;
327
+ assert_eq ! ( info. loc_type, LocationType :: Dataset ) ;
328
+ token = info. token ;
329
+ }
330
+ let var = file. open_by_token ( token) . unwrap ( ) ;
331
+ assert_eq ! ( var. name( ) , "/var" ) ;
332
+
333
+ let info = file. get_info_by_name ( "group" ) . unwrap ( ) ;
334
+ let group = file. open_by_token ( info. token ) . unwrap ( ) ;
335
+ assert_eq ! ( group. name( ) , "/group" ) ;
336
+ let info = file. get_info_by_name ( "var" ) . unwrap ( ) ;
337
+ let var = file. open_by_token ( info. token ) . unwrap ( ) ;
338
+ assert_eq ! ( var. name( ) , "/var" ) ;
339
+
340
+ assert ! ( file. get_info_by_name( "gibberish" ) . is_err( ) ) ;
341
+ } )
342
+ }
301
343
}
0 commit comments