new
/// Instantiates a new PMMR backend.
/// Use the provided dir to store its files.
unpruned_size
/// Number of elements in the PMMR stored by this backend. Only produces the
/// fully sync'd size.
data_size
/// Number of elements in the underlying stored data. Extremely dependent on
/// pruning and compaction.
hash_size
/// Size of the underlying hashed data. Extremely dependent on pruning
/// and compaction.
sync
/// Syncs all files to disk. A call to sync is required to ensure all the
/// data has been successfully written to disk.
discard
/// Discard the current, non synced state of the backend.
data_file_path
/// Return the data file path
check_compact
/// Takes the leaf_set at a given cutoff_pos and generates an updated
/// prune_list. Saves the updated prune_list to disk
/// Compacts the hash and data files based on the prune_list and saves both
/// to disk.
///
/// A cutoff position limits compaction on recent data.
/// This will be the last position of a particular block
/// to keep things aligned.
/// The block_marker in the db/index for the particular block
/// will have a suitable output_pos.
/// This is used to enforce a horizon after which the local node
/// should have all the data to allow rewinding.