66 lines
2.1 KiB
C#
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
|
|
}}
|
|
}}");
|
|
}
|
|
} |