Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,48 +14,48 @@ public partial class Query

public static bool operator true(Query _) => false;

public static Query operator &(Query leftContainer, Query rightContainer) =>
public static Query operator &(Query? leftContainer, Query? rightContainer) =>
And(leftContainer, rightContainer);

internal static Query And(Query leftContainer, Query rightContainer)
internal static Query And(Query? leftContainer, Query? rightContainer)
{
if (leftContainer is null && rightContainer is null)
{
throw new ArgumentException("Queries to combine should not both be null.");
}

if (rightContainer is null)
return leftContainer;
return leftContainer!;

if (leftContainer is null)
return rightContainer;

return leftContainer.CombineAsMust(rightContainer);
}

public static Query operator |(Query leftContainer, Query rightContainer) => Or(leftContainer, rightContainer);
public static Query operator |(Query? leftContainer, Query? rightContainer) => Or(leftContainer, rightContainer);

internal static Query Or(Query leftContainer, Query rightContainer)
internal static Query Or(Query? leftContainer, Query? rightContainer)
{
if (leftContainer is null && rightContainer is null)
{
throw new ArgumentException("Queries to combine should not both be null.");
}

if (rightContainer is null)
return leftContainer;
return leftContainer!;

if (leftContainer is null)
return rightContainer;

return leftContainer.CombineAsShould(rightContainer);
}

public static Query operator !(Query queryContainer) => queryContainer is null
public static Query? operator !(Query? queryContainer) => queryContainer is null
? null
: new() { Bool = new() { MustNot = [queryContainer] } };

public static Query operator +(Query queryContainer) => queryContainer is null
public static Query? operator +(Query? queryContainer) => queryContainer is null
? null
: new() { Bool = new() { Filter = [queryContainer] } };
}
Expand Down
Loading