Use runtime instead of compile-time conditionals for result logging

This commit is contained in:
Alex Barney 2019-12-17 22:15:16 -06:00
parent 47f2f4954a
commit 2b828bb50f
2 changed files with 18 additions and 7 deletions

1
.gitignore vendored
View file

@ -265,3 +265,4 @@ __pycache__/
global.json
!tests/LibHac.Tests/CryptoTests/TestVectors/*
**/DisasmoBin/

View file

@ -42,9 +42,8 @@ namespace LibHac
/// <returns>The called <see cref="Result"/> value.</returns>
public Result Log()
{
#if DEBUG
LogCallback?.Invoke(this);
#endif
LogImpl();
return this;
}
@ -55,12 +54,23 @@ namespace LibHac
/// <returns>The called <see cref="Result"/> value.</returns>
public Result LogConverted(Result originalResult)
{
#if DEBUG
ConvertedLogCallback?.Invoke(this, originalResult);
#endif
LogConvertedImpl(originalResult);
return this;
}
[Conditional("DEBUG")]
private void LogImpl()
{
LogCallback?.Invoke(this);
}
[Conditional("DEBUG")]
private void LogConvertedImpl(Result originalResult)
{
ConvertedLogCallback?.Invoke(this, originalResult);
}
public delegate void ResultLogger(Result result);
public delegate void ConvertedResultLogger(Result result, Result originalResult);
public delegate bool ResultNameGetter(Result result, out string name);