CallbacksInfo.cs 739 B

123456789101112131415161718192021222324
  1. using System.Collections.Immutable;
  2. using System.Linq;
  3. using Microsoft.CodeAnalysis;
  4. namespace Godot.SourceGenerators.Internal;
  5. internal readonly struct CallbacksData
  6. {
  7. public CallbacksData(INamedTypeSymbol nativeTypeSymbol, INamedTypeSymbol funcStructSymbol)
  8. {
  9. NativeTypeSymbol = nativeTypeSymbol;
  10. FuncStructSymbol = funcStructSymbol;
  11. Methods = NativeTypeSymbol.GetMembers()
  12. .Where(symbol => symbol is IMethodSymbol { IsPartialDefinition: true })
  13. .Cast<IMethodSymbol>()
  14. .ToImmutableArray();
  15. }
  16. public INamedTypeSymbol NativeTypeSymbol { get; }
  17. public INamedTypeSymbol FuncStructSymbol { get; }
  18. public ImmutableArray<IMethodSymbol> Methods { get; }
  19. }