From d87492c97b5ac6eec1c86c4cc8b2b45e9f8ad165 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 24 Jun 2020 14:41:52 -0700 Subject: The Great Tuple to Symbol File Rename (tm) --- .../Symbols/ModuleSignatureSymbol.cs | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs (limited to 'src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs') diff --git a/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs b/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs new file mode 100644 index 00000000..5f6ded09 --- /dev/null +++ b/src/WixToolset.Data/Symbols/ModuleSignatureSymbol.cs @@ -0,0 +1,60 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +namespace WixToolset.Data +{ + using WixToolset.Data.Symbols; + + public static partial class SymbolDefinitions + { + public static readonly IntermediateSymbolDefinition ModuleSignature = new IntermediateSymbolDefinition( + SymbolDefinitionType.ModuleSignature, + new[] + { + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.ModuleID), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Language), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(ModuleSignatureSymbolFields.Version), IntermediateFieldType.String), + }, + typeof(ModuleSignatureSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum ModuleSignatureSymbolFields + { + ModuleID, + Language, + Version, + } + + public class ModuleSignatureSymbol : IntermediateSymbol + { + public ModuleSignatureSymbol() : base(SymbolDefinitions.ModuleSignature, null, null) + { + } + + public ModuleSignatureSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ModuleSignature, sourceLineNumber, id) + { + } + + public IntermediateField this[ModuleSignatureSymbolFields index] => this.Fields[(int)index]; + + public string ModuleID + { + get => (string)this.Fields[(int)ModuleSignatureSymbolFields.ModuleID]; + set => this.Set((int)ModuleSignatureSymbolFields.ModuleID, value); + } + + public int Language + { + get => (int)this.Fields[(int)ModuleSignatureSymbolFields.Language]; + set => this.Set((int)ModuleSignatureSymbolFields.Language, value); + } + + public string Version + { + get => (string)this.Fields[(int)ModuleSignatureSymbolFields.Version]; + set => this.Set((int)ModuleSignatureSymbolFields.Version, value); + } + } +} \ No newline at end of file -- cgit v1.2.3-55-g6feb