DoxigAlpha

getLongestPrefix

Returns the key-value pair where key is the longest prefix of str else null.

This is effectively an O(N) algorithm which loops from max_len to min_len and calls getIndex() to check all keys with the given len.

Function parameters

Parameters

#
str:[]const u8

Static string map optimized for small sets of disparate string keys.

Functions

#
StaticStringMap
Static string map optimized for small sets of disparate string keys.
defaultEql
Like `std.mem.eql`, but takes advantage of the fact that the lengths
eqlAsciiIgnoreCase
Like `std.ascii.eqlIgnoreCase` but takes advantage of the fact that
StaticStringMapWithEql
StaticStringMap, but accepts an equality function (`eql`).

Source

Implementation

#
pub fn getLongestPrefix(self: Self, str: []const u8) ?KV {
    if (self.kvs.len == 0)
        return null;
    const i = self.getLongestPrefixIndex(str) orelse return null;
    const kvs = self.kvs.*;
    return .{
        .key = kvs.keys[i],
        .value = kvs.values[i],
    };
}