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}", $@"//---------------------------------------------------------------------------------------- // // 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. // //---------------------------------------------------------------------------------------- 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()) {{ }} 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 }} }}"); } }