using System;
// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
namespace NodePipeline.Abstractions.Attributes;
///
/// Specifies default value for parameter
///
[AttributeUsage(AttributeTargets.Property)]
public sealed class HasDefaultValueAttribute : Attribute
{
///
/// Specifies default value for parameter
///
/// Default value
/// Default value type
public HasDefaultValueAttribute(object value, Type type)
{
Value = value;
Type = type;
}
///
/// Specifies default value for parameter
///
/// Default string value
public HasDefaultValueAttribute(string value)
{
Value = value;
Type = typeof(string);
}
///
/// Specifies default value for parameter
///
/// Default integer value
public HasDefaultValueAttribute(int value)
{
Value = value;
Type = typeof(int);
}
///
/// Specifies default value for parameter
///
/// Default decimal value
public HasDefaultValueAttribute(decimal value)
{
Value = value;
Type = typeof(decimal);
}
///
/// Default value
///
public object Value { get; }
///
/// Default value type
///
public Type Type { get; }
}