RapidFuzz
Toggle main menu visibility
Loading...
Searching...
No Matches
Prefix_impl.hpp
1
/* SPDX-License-Identifier: MIT */
2
/* Copyright © 2021 Max Bachmann */
3
4
#pragma once
5
#include <rapidfuzz/details/Range.hpp>
6
#include <rapidfuzz/details/common.hpp>
7
#include <rapidfuzz/details/distance.hpp>
8
9
namespace
rapidfuzz {
10
namespace
detail {
11
12
class
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>;
15
16
template
<
typename
InputIt1,
typename
InputIt2>
17
static
size_t
maximum(
const
Range<InputIt1>& s1,
const
Range<InputIt2>& s2)
18
{
19
return
std::max(s1.size(), s2.size());
20
}
21
22
template
<
typename
InputIt1,
typename
InputIt2>
23
static
size_t
_similarity(Range<InputIt1> s1, Range<InputIt2> s2,
size_t
score_cutoff,
size_t
)
24
{
25
size_t
dist = remove_common_prefix(s1, s2);
26
return
(dist >= score_cutoff) ? dist : 0;
27
}
28
};
29
30
}
// namespace detail
31
}
// namespace rapidfuzz
rapidfuzz
distance
Prefix_impl.hpp
Generated by
1.17.0