From eb32ef8e94ec1eb8f49fcc207045456f256eabf1 Mon Sep 17 00:00:00 2001 From: Wvader <34067397+wvader@users.noreply.github.com> Date: Mon, 6 Dec 2021 16:39:48 +0000 Subject: [PATCH] Struct tweaks --- src/MapTo/MappingContext.cs | 2 +- src/MapTo/Sources/MapStructSource.cs | 50 +++------------------------- 2 files changed, 5 insertions(+), 47 deletions(-) diff --git a/src/MapTo/MappingContext.cs b/src/MapTo/MappingContext.cs index 37c3a80..07e883e 100644 --- a/src/MapTo/MappingContext.cs +++ b/src/MapTo/MappingContext.cs @@ -60,8 +60,8 @@ namespace MapTo { MappingContext context = typeSyntax switch { - ClassDeclarationSyntax => new ClassMappingContext(compilation, sourceGenerationOptions, typeSyntax), StructDeclarationSyntax => new StructMappingContext(compilation, sourceGenerationOptions, typeSyntax), + ClassDeclarationSyntax => new ClassMappingContext(compilation, sourceGenerationOptions, typeSyntax), RecordDeclarationSyntax => new RecordMappingContext(compilation, sourceGenerationOptions, typeSyntax), _ => throw new ArgumentOutOfRangeException() }; diff --git a/src/MapTo/Sources/MapStructSource.cs b/src/MapTo/Sources/MapStructSource.cs index 6177468..fdf1acc 100644 --- a/src/MapTo/Sources/MapStructSource.cs +++ b/src/MapTo/Sources/MapStructSource.cs @@ -18,17 +18,11 @@ namespace MapTo.Sources .WriteOpeningBracket() // Class declaration - .WriteLine($"partial class {model.TypeIdentifierName}") + .WriteLine($"partial struct {model.TypeIdentifierName}") .WriteOpeningBracket(); // Class body - if (model.GenerateSecondaryConstructor) - { - builder - .GenerateSecondaryConstructor(model) - .WriteLine(); - } - + builder .GeneratePrivateConstructor(model) .WriteLine() @@ -50,7 +44,7 @@ namespace MapTo.Sources { builder .WriteLine("/// ") - .WriteLine($"/// Initializes a new instance of the class") + .WriteLine($"/// Initializes a new instance of the struct") .WriteLine($"/// using the property values from the specified .") .WriteLine("/// ") .WriteLine($"/// {sourceClassParameterName} is null"); @@ -115,22 +109,7 @@ namespace MapTo.Sources } - - private static SourceBuilder GenerateConvertorMethodsXmlDocs(this SourceBuilder builder, MappingModel model, string sourceClassParameterName) - { - if (!model.Options.GenerateXmlDocument) - { - return builder; - } - - return builder - .WriteLine("/// ") - .WriteLine($"/// Creates a new instance of and sets its participating properties") - .WriteLine($"/// using the property values from .") - .WriteLine("/// ") - .WriteLine($"/// The instance of to use as source.") - .WriteLine($"/// A new instance of -or- null if is null."); - } + private static SourceBuilder GenerateUpdaterMethodsXmlDocs(this SourceBuilder builder, MappingModel model, string sourceClassParameterName) { @@ -147,26 +126,5 @@ namespace MapTo.Sources .WriteLine($"/// The instance of to use as source."); } - private static SourceBuilder GenerateSourceTypeExtensionClass(this SourceBuilder builder, MappingModel model) - { - return builder - .WriteLine($"{model.Options.GeneratedMethodsAccessModifier.ToLowercaseString()} static partial class {model.SourceTypeIdentifierName}To{model.TypeIdentifierName}Extensions") - .WriteOpeningBracket() - .GenerateSourceTypeExtensionMethod(model) - .WriteClosingBracket(); - } - - private static SourceBuilder GenerateSourceTypeExtensionMethod(this SourceBuilder builder, MappingModel model) - { - var sourceClassParameterName = model.SourceTypeIdentifierName.ToCamelCase(); - - return builder - .GenerateConvertorMethodsXmlDocs(model, sourceClassParameterName) - .WriteLineIf(model.Options.SupportNullableStaticAnalysis, $"[return: NotNullIfNotNull(\"{sourceClassParameterName}\")]") - .WriteLine($"{model.Options.GeneratedMethodsAccessModifier.ToLowercaseString()} static {model.TypeIdentifierName}{model.Options.NullableReferenceSyntax} To{model.TypeIdentifierName}(this {model.SourceType}{model.Options.NullableReferenceSyntax} {sourceClassParameterName})") - .WriteOpeningBracket() - .WriteLine($"return {sourceClassParameterName} == null ? null : new {model.TypeIdentifierName}({sourceClassParameterName});") - .WriteClosingBracket(); - } } } \ No newline at end of file