19dba64beSDimitry Andric// Base class for all options. 29dba64beSDimitry Andricclass Property<string name, string type> { 39dba64beSDimitry Andric string Name = name; 49dba64beSDimitry Andric string Type = type; 59dba64beSDimitry Andric string Definition; 69dba64beSDimitry Andric} 79dba64beSDimitry Andric 89dba64beSDimitry Andric// Sets the description for the property that should be displayed to the user. 99dba64beSDimitry Andricclass Desc<string description> { 109dba64beSDimitry Andric string Description = description; 119dba64beSDimitry Andric} 129dba64beSDimitry Andric 139dba64beSDimitry Andric// Marks the property as global. 149dba64beSDimitry Andricclass Global { 159dba64beSDimitry Andric bit Global = 1; 169dba64beSDimitry Andric} 179dba64beSDimitry Andric 189dba64beSDimitry Andricclass DefaultTrue { 199dba64beSDimitry Andric int DefaultUnsignedValue = 1; 209dba64beSDimitry Andric bit HasDefaultUnsignedValue = 1; 21480093f4SDimitry Andric bit HasDefaultBooleanValue = 1; 229dba64beSDimitry Andric} 239dba64beSDimitry Andric 249dba64beSDimitry Andricclass DefaultFalse { 259dba64beSDimitry Andric int DefaultUnsignedValue = 0; 269dba64beSDimitry Andric bit HasDefaultUnsignedValue = 1; 27480093f4SDimitry Andric bit HasDefaultBooleanValue = 1; 289dba64beSDimitry Andric} 299dba64beSDimitry Andric 309dba64beSDimitry Andric// Gives the property a default string value. 319dba64beSDimitry Andricclass DefaultStringValue<string value> { 329dba64beSDimitry Andric string DefaultStringValue = value; 339dba64beSDimitry Andric bit HasDefaultStringValue = 1; 349dba64beSDimitry Andric} 359dba64beSDimitry Andric 369dba64beSDimitry Andric// Gives the property a default enum value. 379dba64beSDimitry Andricclass DefaultEnumValue<string value> { 389dba64beSDimitry Andric string DefaultEnumValue = value; 399dba64beSDimitry Andric bit HasDefaultEnumValue = 1; 409dba64beSDimitry Andric} 419dba64beSDimitry Andric 429dba64beSDimitry Andric// Gives the property a default string value. 439dba64beSDimitry Andricclass DefaultUnsignedValue<int value> { 449dba64beSDimitry Andric int DefaultUnsignedValue = value; 459dba64beSDimitry Andric bit HasDefaultUnsignedValue = 1; 469dba64beSDimitry Andric} 479dba64beSDimitry Andric 489dba64beSDimitry Andric// Gives the property enum values. 499dba64beSDimitry Andricclass EnumValues<string enum> { 509dba64beSDimitry Andric string EnumValues = enum; 519dba64beSDimitry Andric} 52*5ffd83dbSDimitry Andric 53*5ffd83dbSDimitry Andric// Determines the element type for arrays and dictionaries. 54*5ffd83dbSDimitry Andricclass ElementType<string value> { 55*5ffd83dbSDimitry Andric string ElementType = value; 56*5ffd83dbSDimitry Andric bit HasElementType = 1; 57*5ffd83dbSDimitry Andric} 58