// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 using BenchmarkDotNet.Columns; using BenchmarkDotNet.Reports; using BenchmarkDotNet.Running; using System; namespace GFramework.Cqrs.Benchmarks; /// /// 为 CQRS benchmark 结果补充可读的场景标签列。 /// /// 列名。 /// 从 benchmark case 提取列值的委托。 public sealed class CustomColumn(string columnName, Func getValue) : IColumn { /// public string Id => $"{nameof(CustomColumn)}.{ColumnName}"; /// public string ColumnName { get; } = columnName; /// public bool AlwaysShow => true; /// public ColumnCategory Category => ColumnCategory.Params; /// public int PriorityInCategory => 0; /// public bool IsNumeric => false; /// public UnitType UnitType => UnitType.Dimensionless; /// public string Legend => $"Custom '{ColumnName}' tag column"; /// public bool IsDefault(Summary summary, BenchmarkCase benchmarkCase) { return false; } /// public bool IsAvailable(Summary summary) { return true; } /// public string GetValue(Summary summary, BenchmarkCase benchmarkCase) { return getValue(summary, benchmarkCase); } /// public string GetValue(Summary summary, BenchmarkCase benchmarkCase, SummaryStyle style) { return GetValue(summary, benchmarkCase); } /// public override string ToString() { return ColumnName; } }