IGeneratedTypeMetadata.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using JetBrains.Annotations;
  2. using Microsoft.CodeAnalysis;
  3. namespace Terminal.Gui.Analyzers.Internal;
  4. /// <summary>
  5. /// Interface for all generators to use for their metadata classes.
  6. /// </summary>
  7. /// <typeparam name="TSelf">The type implementing this interface.</typeparam>
  8. internal interface IGeneratedTypeMetadata<out TSelf> where TSelf : IGeneratedTypeMetadata<TSelf>
  9. {
  10. [UsedImplicitly]
  11. string GeneratedTypeNamespace { get; }
  12. [UsedImplicitly]
  13. string? GeneratedTypeName { get; }
  14. [UsedImplicitly]
  15. string GeneratedTypeFullName { get; }
  16. [UsedImplicitly]
  17. string TargetTypeNamespace { get; }
  18. [UsedImplicitly]
  19. string TargetTypeName { get; }
  20. string TargetTypeFullName { get; }
  21. [UsedImplicitly]
  22. Accessibility Accessibility { get; }
  23. TypeKind TypeKind { get; }
  24. bool IsRecord { get; }
  25. bool IsClass { get; }
  26. bool IsStruct { get; }
  27. [UsedImplicitly]
  28. bool IsPartial { get; }
  29. bool IsByRefLike { get; }
  30. bool IsSealed { get; }
  31. bool IsAbstract { get; }
  32. bool IsEnum { get; }
  33. bool IsStatic { get; }
  34. [UsedImplicitly]
  35. bool IncludeInterface { get; }
  36. }