Skip to content
Closed
Show file tree
Hide file tree
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
6 changes: 3 additions & 3 deletions Casbin/Extensions/LoggerExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@ public static class LoggerExtension
public static void LogEnforceCachedResult<TRequest>(this ILogger logger, in TRequest requestValues, bool result)
where TRequest : IRequestValues
{
logger.LogInformation("Request: {1} ---> {0} (cached)", result, requestValues);
logger.LogInformation("Request: {Result} ---> {RequestValues} (cached)", result, requestValues);
}

public static void LogEnforceResult<TRequest>(this ILogger logger, in TRequest requestValues, bool result)
where TRequest : IRequestValues
{
logger.LogInformation("Request: {1} ---> {0}", result, requestValues);
logger.LogInformation("Request: {Result} ---> {RequestValues}", result, requestValues);
}

public static void LogEnforceResult<TRequest>(this ILogger logger, in TRequest requestValues,
bool result, IEnumerable<IEnumerable<string>> explains)
where TRequest : IRequestValues
{
logger.LogInformation("Request: {1} ---> {0}\nHit Store: {2}", result, requestValues,
logger.LogInformation("Request: {Result} ---> {RequestValues} Hit Store: {Explain}", result, requestValues,
string.Join("\n", explains.Select(explain =>
Copy link

Copilot AI Oct 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The log message format changed from using a newline separator to inline format. This removes the newline between the main result and the explanation, which may reduce readability of the log output.

Suggested change
string.Join("\n", explains.Select(explain =>
string.Join("; ", explains.Select(explain =>

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

string.Join(", ", explain))));
}
Expand Down
92 changes: 92 additions & 0 deletions Casbin/Model/RequestValues.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Casbin.Model;

Expand Down Expand Up @@ -46,6 +47,11 @@ public bool TrySetValue<T1>(int index, T1 value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}]";
}
}

public struct RequestValues<T1, T2> : IRequestValues
Expand Down Expand Up @@ -82,6 +88,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}]";
}
}

public struct RequestValues<T1, T2, T3> : IRequestValues
Expand Down Expand Up @@ -124,6 +135,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}]";
}
}

public struct RequestValues<T1, T2, T3, T4> : IRequestValues
Expand Down Expand Up @@ -172,6 +188,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5> : IRequestValues
Expand Down Expand Up @@ -226,6 +247,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6> : IRequestValues
Expand Down Expand Up @@ -286,6 +312,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7> : IRequestValues
Expand Down Expand Up @@ -352,6 +383,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8> : IRequestValues
Expand Down Expand Up @@ -424,6 +460,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9> : IRequestValues
Expand Down Expand Up @@ -503,6 +544,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> : IRequestValues
Expand Down Expand Up @@ -588,6 +634,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}, {RequestValues.ToStringValue(Value10)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> : IRequestValues
Expand Down Expand Up @@ -679,6 +730,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}, {RequestValues.ToStringValue(Value10)}, {RequestValues.ToStringValue(Value11)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> : IRequestValues
Expand Down Expand Up @@ -776,6 +832,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}, {RequestValues.ToStringValue(Value10)}, {RequestValues.ToStringValue(Value11)}, {RequestValues.ToStringValue(Value12)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> : IRequestValues
Expand Down Expand Up @@ -879,6 +940,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}, {RequestValues.ToStringValue(Value10)}, {RequestValues.ToStringValue(Value11)}, {RequestValues.ToStringValue(Value12)}, {RequestValues.ToStringValue(Value13)}]";
}
}

public struct RequestValues<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> : IRequestValues
Expand Down Expand Up @@ -988,6 +1054,11 @@ public bool TrySetValue<T>(int index, T value)
return false;
}
}

public override string ToString()
{
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}, {RequestValues.ToStringValue(Value10)}, {RequestValues.ToStringValue(Value11)}, {RequestValues.ToStringValue(Value12)}, {RequestValues.ToStringValue(Value13)}, {RequestValues.ToStringValue(Value14)}]";
}
}

public struct StringRequestValues : IRequestValues
Expand Down Expand Up @@ -1110,6 +1181,11 @@ public bool TrySetValue(int index, string value)
return false;
}
}

public override string ToString()
{
return $"[{Value1}, {Value2}, {Value3}, {Value4}, {Value5}, {Value6}, {Value7}, {Value8}, {Value9}, {Value10}, {Value11}, {Value12}, {Value13}, {Value14}]";
Copy link

Copilot AI Oct 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The StringRequestValues ToString() method doesn't use RequestValues.ToStringValue() helper like other implementations. This creates inconsistency and may cause issues if string values contain special characters that need escaping.

Suggested change
return $"[{Value1}, {Value2}, {Value3}, {Value4}, {Value5}, {Value6}, {Value7}, {Value8}, {Value9}, {Value10}, {Value11}, {Value12}, {Value13}, {Value14}]";
return $"[{RequestValues.ToStringValue(Value1)}, {RequestValues.ToStringValue(Value2)}, {RequestValues.ToStringValue(Value3)}, {RequestValues.ToStringValue(Value4)}, {RequestValues.ToStringValue(Value5)}, {RequestValues.ToStringValue(Value6)}, {RequestValues.ToStringValue(Value7)}, {RequestValues.ToStringValue(Value8)}, {RequestValues.ToStringValue(Value9)}, {RequestValues.ToStringValue(Value10)}, {RequestValues.ToStringValue(Value11)}, {RequestValues.ToStringValue(Value12)}, {RequestValues.ToStringValue(Value13)}, {RequestValues.ToStringValue(Value14)}]";

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
}

public readonly struct ListRequestValues<TValue> : IRequestValues
Expand Down Expand Up @@ -1152,4 +1228,20 @@ public bool TrySetValue<T>(int index, T value)
_values[index] = v;
return true;
}

public override string ToString()
{
var sb = new StringBuilder();
sb.Append('[');
for (var i = 0; i < _values.Count; i++)
{
if (i > 0)
{
sb.Append(", ");
}
sb.Append(RequestValues.ToStringValue(_values[i]));
}
sb.Append(']');
return sb.ToString();
}
}
Loading