#include <stdarg.h>
#include <stddef.h>
#include <stdint.h>
#include <algorithm>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/logging.h"
#include "base/strings/sys_string_conversions.h"
#include "puffin/file_stream.h"
#include "puffin/memory_stream.h"
#include "puffin/src/include/puffin/common.h"
#include "puffin/src/include/puffin/huffer.h"
#include "puffin/src/include/puffin/puffdiff.h"
#include "puffin/src/include/puffin/puffer.h"
#include "puffin/src/include/puffin/puffpatch.h"
#include "puffin/src/include/puffin/utils.h"
#include "puffin/src/logging.h"
#include "puffin/src/puffin_stream.h"
BitExtent;
Buffer;
ByteExtent;
FileStream;
Huffer;
MemoryStream;
Puffer;
PuffinStream;
UniqueStreamPtr;
string;
stringstream;
vector;
namespace {
void PrintHelp() { … }
enum class FileType { … };
FileType StringToFileType(const string& file_type) { … }
bool LocateDeflatesBasedOnFileType(const UniqueStreamPtr& stream,
const string& file_name,
vector<BitExtent>* deflates) { … }
}
bool ExecutePuffDiff(const string& src_file_path,
const string& dst_file_path,
const string& patch_file_path) { … }
bool ExecutePuffPatch(const string& src_file_path,
const string& dst_file_path,
const string& patch_file_path) { … }
bool Main(int argc, char** argv) { … }
int main(int argc, char** argv) { … }