namespace AIStudio.Models.Matching;
///
/// How tightly a pattern is bound to the name it matches.
///
///
/// This is the first thing that decides which of two rules wins, and it is ordered by how much the
/// pattern claims to know: naming the whole model says more than naming how the name begins, which
/// says more than naming a part of it, which says more than appearing somewhere inside it.
///
public enum MatchKind
{
///
/// The pattern is the whole name.
///
EXACT,
///
/// The name begins with the pattern, and a name part ends where the pattern ends.
///
PREFIX,
///
/// The pattern appears in the name as one or more whole name parts.
///
///
/// This is the one to reach for by default. It is what the old rules meant when they said that
/// a family name counts "only where a name part begins", so that looking for the Yi family does
/// not answer for every model whose name happens to contain those two letters.
///
SEGMENT,
///
/// The pattern appears anywhere in the name, boundaries or not.
///
///
/// The last resort, for the names where a vendor glues things together, such as a version
/// number sitting inside a name part. It claims the least and therefore loses against every
/// other kind, which is what keeps it from swallowing families it was never meant for.
///
SUBSTRING,
}