using Microsoft.CodeAnalysis; namespace QuestPDF.InteropGenerators; /// /// Interface for generating interop bindings for QuestPDF public API. /// Generates both C# native AOT code for C ABI/FFI and Python bindings. /// public interface ISourceGenerator { /// /// Generates C# code for native AOT compilation with C ABI compatibility. /// This should produce UnmanagedCallersOnly methods for FFI interop. /// Return empty string if the type doesn't require C interop code (e.g., enums). /// /// Root namespace symbol to analyze /// Generated C# interop code or empty string if not applicable string GenerateCSharpCode(INamespaceSymbol namespaceSymbol); /// /// Generates Python bindings code using ctypes or similar FFI mechanisms. /// This creates Python classes and functions that wrap the C ABI interface. /// /// Root namespace symbol to analyze /// Generated Python binding code string GeneratePythonCode(INamespaceSymbol namespaceSymbol); }