fix(codegen): Adds access modifiers to serializable fields (#633)

- [X] Adds options for SerializableField.

Example:
```cs
[SerializableField(0, getter: "protected", setter: "protected", isVritual: true)]
private int _someField;
```

Defaults: `getter: "public", setter: "public", isVirtual: false`
This commit is contained in:
Kamron Batman 2021-06-01 22:53:51 -07:00 committed by GitHub
parent 72d3966541
commit 803b4a33cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 183 additions and 164 deletions

View file

@ -17,7 +17,7 @@ using System.Collections.Immutable;
using System.Text;
using Microsoft.CodeAnalysis;
namespace SourceGeneration
namespace SerializationGenerator
{
public static partial class SourceGeneration
{
@ -49,7 +49,7 @@ namespace SourceGeneration
// TODO: Generalize this to any field using dynamic indentation
public static void GenerateClassField(
this StringBuilder source,
AccessModifier accessors,
Accessibility accessors,
InstanceModifier instance,
string type,
string variableName,
@ -63,7 +63,7 @@ namespace SourceGeneration
}
var instanceStr = instance == InstanceModifier.None ? "" : $"{instance.ToFriendlyString()} ";
var accessorStr = accessors == AccessModifier.None ? "" : $"{accessors.ToFriendlyString()} ";
var accessorStr = accessors == Accessibility.NotApplicable ? "" : $"{accessors.ToFriendlyString()} ";
var valueStr = value == null ? "" : $" = {value}";
source.AppendLine($" {accessorStr}{instanceStr}{type} {variableName}{valueStr};");