in src/PSRule.Rules.Azure/Data/Template/ParameterType.cs [11:47]
internal readonly struct ParameterType(TypePrimitive type = TypePrimitive.None, TypePrimitive itemType = TypePrimitive.None, string? name = null)
{
public readonly TypePrimitive Type = type;
public readonly TypePrimitive ItemType = itemType;
public readonly string? Name = name;
public static readonly ParameterType String = new(TypePrimitive.String);
public static readonly ParameterType Object = new(TypePrimitive.Object);
public static readonly ParameterType SecureString = new(TypePrimitive.SecureString);
public static readonly ParameterType Array = new(TypePrimitive.Array);
public static bool TrySimpleType(string? type, out ParameterType? value)
{
if (!TypeHelpers.TryTypePrimitive(type, out var primitive) || primitive == null)
{
value = new ParameterType();
return false;
}
value = new ParameterType(primitive.Value, default, default);
return true;
}
public static bool TryArrayType(string? type, string? itemType, out ParameterType? value)
{
if (!TypeHelpers.TryTypePrimitive(type, out var primitive) || primitive == null)
{
value = new ParameterType();
return false;
}
value = TypeHelpers.TryTypePrimitive(itemType, out var itemPrimitive) && itemPrimitive != null
? new ParameterType(primitive.Value, itemPrimitive.Value, default)
: new ParameterType(primitive.Value, TypePrimitive.None, default);
return true;
}
}