rust-inner-revlog: cache the compressor
The `compress` function is unlikely to be used in highly contended situations,
and creating a compressor has some overhead, on top of losing out on some
potential advantages of longer-running optimizations from the compressor.
#ifndef HG_BDIFF_H
#define HG_BDIFF_H
#include "compat.h"
struct bdiff_line {
int hash, n, e;
ssize_t len;
const char *l;
};
struct bdiff_hunk;
struct bdiff_hunk {
int a1, a2, b1, b2;
struct bdiff_hunk *next;
};
int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr);
int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn,
struct bdiff_hunk *base);
void bdiff_freehunks(struct bdiff_hunk *l);
#endif