Compare commits

..

1 Commits

Author SHA1 Message Date
GHXX 61e2d39bee Merge branch 'feature/pathparams' 2024-08-11 04:47:39 +02:00

View File

@ -22,12 +22,12 @@ internal class PathTree<T> where T : class {
throw new Exception($"Found illegal catchall-wildcard in path: '{string.Join('/', path)}'");
}
var leafdata = unpackedLeafData[i] ?? throw new ArgumentNullException("Leafdata must not be null!");
var leafdata = unpackedLeafData[i];
rootNode.AddSuccessor(path, leafdata);
}
}
internal bool TryGetPath(string reqPath, [MaybeNullWhen(false)] out T endpoint) {
internal bool TryGetPath(string reqPath, [MaybeNullWhen(false)] out T? endpoint) {
if (rootNode == null) {
endpoint = null;
return false;
@ -58,16 +58,16 @@ internal class PathTree<T> where T : class {
// return found path
endpoint = currNode.leafData;
return endpoint != null;
return true;
}
private class Node {
public T? leafData = null; // null means that this is a node without a value (e.g. when it is just part of a path)
public T? leafData = null;
public Dictionary<string, Node>? next = null;
public Node? pathWildcardNext = null; // path wildcard
public Node? catchAllNext = null; // trailing-catchall wildcard
public void AddSuccessor(string[] segments, T newLeafData) {
public void AddSuccessor(string[] segments, T? newLeafData) {
if (segments.Length == 0) { // actually add the data to this node
Assert(leafData == null);
leafData = newLeafData;