Files
ProxyGenerator/src/Speckle.ProxyGenerator/FileGenerators/ExtraFilesGenerator.cs
T
2024-05-21 16:33:33 +01:00

66 lines
2.1 KiB
C#

using Speckle.ProxyGenerator.Models;
namespace Speckle.ProxyGenerator.FileGenerators;
internal class ExtraFilesGenerator : IFileGenerator
{
private const string Name = "ProxyInterfaceGenerator.Extra.g.cs";
public FileData GenerateFile()
{
return new FileData($"{Name}", $@"//----------------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by https://github.com/StefH/ProxyInterfaceSourceGenerator.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//----------------------------------------------------------------------------------------
using System;
namespace ProxyInterfaceGenerator
{{
[AttributeUsage(AttributeTargets.Interface)]
internal sealed class ProxyAttribute : Attribute
{{
public Type Type {{ get; }}
public bool ProxyBaseClasses {{ get; }}
public ProxyClassAccessibility Accessibility {{ get; }}
public string[] MembersToIgnore {{ get; }}
public ProxyAttribute(Type type) : this(type, false, ProxyClassAccessibility.Public)
{{
}}
public ProxyAttribute(Type type, bool proxyBaseClasses) : this(type, proxyBaseClasses, ProxyClassAccessibility.Public)
{{
}}
public ProxyAttribute(Type type, ProxyClassAccessibility accessibility) : this(type, false, accessibility)
{{
}}
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, Array.Empty<string>())
{{
}}
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[] membersToIgnore)
{{
Type = type;
ProxyBaseClasses = proxyBaseClasses;
Accessibility = accessibility;
MembersToIgnore = membersToIgnore;
}}
}}
[Flags]
internal enum ProxyClassAccessibility
{{
Public = 0,
Internal = 1
}}
}}");
}
}