5#include <rapidfuzz/details/Range.hpp>
6#include <rapidfuzz/details/common.hpp>
7#include <rapidfuzz/details/distance.hpp>
12class Prefix :
public SimilarityBase<Prefix, size_t, 0, std::numeric_limits<int64_t>::max()> {
13 friend SimilarityBase<Prefix, size_t, 0, std::numeric_limits<int64_t>::max()>;
14 friend NormalizedMetricBase<Prefix>;
16 template <
typename InputIt1,
typename InputIt2>
17 static size_t maximum(
const Range<InputIt1>& s1,
const Range<InputIt2>& s2)
19 return std::max(s1.size(), s2.size());
22 template <
typename InputIt1,
typename InputIt2>
23 static size_t _similarity(Range<InputIt1> s1, Range<InputIt2> s2,
size_t score_cutoff,
size_t)
25 size_t dist = remove_common_prefix(s1, s2);
26 return (dist >= score_cutoff) ? dist : 0;