SharpGen/Generator/IGeneratorRegistry.cs (30 lines of code) (raw):

using Microsoft.CodeAnalysis.CSharp.Syntax; using SharpGen.Model; using System; using System.Collections.Generic; using System.Text; namespace SharpGen.Generator { public interface IGeneratorRegistry { IMultiCodeGenerator<CsVariable, MemberDeclarationSyntax> Constant { get; } IMultiCodeGenerator<CsProperty, MemberDeclarationSyntax> Property { get; } IMultiCodeGenerator<CsEnum, MemberDeclarationSyntax> Enum { get; } IMultiCodeGenerator<CsStruct, MemberDeclarationSyntax> NativeStruct { get; } IMultiCodeGenerator<CsField, MemberDeclarationSyntax> ExplicitOffsetField { get; } IMultiCodeGenerator<CsField, MemberDeclarationSyntax> AutoLayoutField { get; } IMultiCodeGenerator<CsStruct, MemberDeclarationSyntax> Struct { get; } INativeCallCodeGenerator NativeInvocation { get; } IMultiCodeGenerator<CsCallable, MemberDeclarationSyntax> Callable { get; } IMultiCodeGenerator<CsMethod, MemberDeclarationSyntax> Method { get; } IMultiCodeGenerator<CsFunction, MemberDeclarationSyntax> Function { get; } IMultiCodeGenerator<CsInterface, MemberDeclarationSyntax> Interface { get; } ICodeGenerator<CsInterface, MemberDeclarationSyntax> Shadow { get; } ICodeGenerator<CsInterface, MemberDeclarationSyntax> Vtbl { get; } IMultiCodeGenerator<CsCallable, MemberDeclarationSyntax> ShadowCallable { get; } IMultiCodeGenerator<(CsCallable, InteropMethodSignature), StatementSyntax> ReverseCallableProlog { get; } IMultiCodeGenerator<CsGroup, MemberDeclarationSyntax> Group { get; } MarshallingRegistry Marshalling { get; } GeneratorConfig Config { get; } } }