1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//! Storage-kind facts read off the object-header messages that split an
//! object's metadata into an inline (compact) shape versus one moved out to
//! a fractal heap plus a v2 B-tree index (dense) once it grows past the
//! phase-change threshold. Attribute storage is governed by
//! [`AttributeInfoMessage`](crate::format::messages::attr_info::AttributeInfoMessage);
//! link storage adds a third, legacy shape (the pre-1.8 symbol table) and is
//! governed by
//! [`LinkInfoMessage`](crate::format::messages::link_info::LinkInfoMessage).
/// Where an object's attributes physically live: inline as `Attribute`
/// messages in the object header (`Compact`), or split into a fractal heap
/// plus a v2 B-tree name index once the set has grown past
/// `H5O__attr_create`'s phase-change threshold (`Dense`). Mirrors h5py's
/// `h5py.h5o.get_info(...).meta_size.attr.index_size` check: nonzero means
/// dense.
/// Where a group's links physically live: the pre-1.8 symbol table (a v1
/// B-tree plus a local heap, `SymbolTable`), inline as `Link` messages in the
/// object header (`Compact`), or split into a fractal heap plus a v2 B-tree
/// name index once the set has grown past `H5G_obj_insert`'s phase-change
/// threshold (`Dense`). Mirrors h5py's `link_storage_str`: a Symbol Table
/// message wins outright, otherwise a nonzero
/// `h5o.get_info(...).meta_size.obj.index_size` means dense.