152 uint32_t record_len);
172 std::function<bool(uint32_t node_index, std::vector<unsigned char>& out)>;
175 std::function<bool(
const unsigned char* record_buf, uint16_t record_len)>;
180 std::vector<std::string>& logs,
constexpr uint8_t kUserBTreeType
constexpr uint8_t kHFSBTreeType
std::function< bool(const unsigned char *record_buf, uint16_t record_len)> LeafRecordCallback
bool parse_node_descriptor(const unsigned char *buf, NodeDescriptor &out)
constexpr uint8_t kHFSBinaryCompare
std::function< bool(uint32_t node_index, std::vector< unsigned char > &out)> NodeReader
constexpr int8_t kBTIndexNode
uint16_t node_record_length(const unsigned char *node_buf, uint16_t nodeSize, uint16_t numRecords, uint16_t i)
constexpr uint8_t kReservedBTreeType
uint16_t node_record_offset(const unsigned char *node_buf, uint16_t nodeSize, uint16_t numRecords, uint16_t i)
constexpr int16_t kHFSPlusFolderRecord
bool walk_btree(const HeaderRec &header, const NodeReader &read_node, const LeafRecordCallback &on_leaf, std::vector< std::string > &logs, std::string &error)
bool parse_catalog_key(const unsigned char *key_buf, uint32_t max_bytes, CatalogKey &out)
constexpr int8_t kBTHeaderNode
constexpr int16_t kHFSPlusFileRecord
constexpr uint8_t kHFSCaseFolding
uint32_t catalog_record_body_offset(const unsigned char *record_buf, uint32_t record_len)
bool parse_header_rec(const unsigned char *buf, HeaderRec &out)
constexpr int16_t kHFSPlusFolderThreadRecord
constexpr int8_t kBTMapNode
constexpr int8_t kBTLeafNode
constexpr int16_t kHFSPlusFileThreadRecord
const unsigned char * name_utf16be