#ifndef SRC_INCLUDE_PUFFIN_PUFFDIFF_H_
#define SRC_INCLUDE_PUFFIN_PUFFDIFF_H_
#include <string>
#include <vector>
#include "puffin/common.h"
#include "puffin/src/include/puffin/puffpatch.h"
#include "puffin/stream.h"
namespace puffin {
enum class PatchAlgorithm { … };
bool PuffDiff(UniqueStreamPtr src,
UniqueStreamPtr dst,
const std::vector<BitExtent>& src_deflates,
const std::vector<BitExtent>& dst_deflates,
const std::vector<puffin::CompressorType>& compressors,
PatchAlgorithm patchAlgorithm,
const std::string& tmp_filepath,
Buffer* patch);
bool PuffDiff(UniqueStreamPtr src,
UniqueStreamPtr dst,
const std::vector<BitExtent>& src_deflates,
const std::vector<BitExtent>& dst_deflates,
const std::vector<puffin::CompressorType>& compressors,
const std::string& tmp_filepath,
Buffer* patch);
bool PuffDiff(const Buffer& src,
const Buffer& dst,
const std::vector<BitExtent>& src_deflates,
const std::vector<BitExtent>& dst_deflates,
const std::vector<puffin::CompressorType>& compressors,
const std::string& tmp_filepath,
Buffer* patch);
bool PuffDiff(const Buffer& src,
const Buffer& dst,
const std::vector<BitExtent>& src_deflates,
const std::vector<BitExtent>& dst_deflates,
const std::string& tmp_filepath,
Buffer* patch);
Status PuffDiff(const std::string& src_file_path,
const std::string& dest_file_path,
const std::string& output_patch_path);
}
#endif