using System.Reflection;
namespace ArgumentsToolkit.Help;
///
/// Сборщик информации о параметрах из модели Options.
///
public static class HelpCollector
{
///
/// Собирает метаданные о параметрах из указанной модели Options.
///
public static HelpModel Collect()
{
var model = new HelpModel();
var props = typeof(T).GetProperties();
foreach (var prop in props)
{
var opt = prop.GetCustomAttribute();
if (opt == null) continue;
model.Entries.Add(new HelpEntry
{
Name = opt.Name,
ShortName = opt.ShortName,
Description = opt.Description,
TypeName = prop.PropertyType.Name,
Required = opt.Required,
DefaultValue = opt.DefaultValue
});
}
return model;
}
}