2
0

index.zig 700 B

1234567891011121314151617181920212223242526272829303132
  1. const std = @import("std");
  2. const storage = @import("storage");
  3. var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
  4. const allocator = arena.allocator();
  5. const MAX_CHILDREN = 1024;
  6. const RadixNode = struct {
  7. children: [MAX_CHILDREN]?*RadixNode,
  8. eof: bool,
  9. prefix: []const u8,
  10. };
  11. var root: RadixNode = .{
  12. .children = [_]?*RadixNode{null} ** MAX_CHILDREN,
  13. .eof = false,
  14. .prefix = &[_]u8{},
  15. };
  16. fn commonPrefixLen(a: []const u8, b: []const u8) usize {
  17. var len: usize = 0;
  18. const min_len = if (a.len < b.len) a.len else b.len;
  19. while (len < min_len) : (len += 1) {
  20. if (a[len] != b[len]) {
  21. break;
  22. }
  23. }
  24. return len;
  25. }