public virtual TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) => implementation.GetMarshalTypeSyntax(csElement);
public bool CanMarshal(CsMarshalBase csElement) { return(csElement.IsArray && csElement.IsInterface); }
public bool CanMarshal(CsMarshalBase csElement) => csElement.IsValueType && csElement.IsArray && !csElement.MappedToDifferentPublicType && csElement is CsField;
public StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) => null;
public bool CanMarshal(CsMarshalBase csElement) => csElement.HasNativeValueType && !csElement.IsArray;
public bool CanMarshal(CsMarshalBase csElement) { return(csElement is CsField field && field.IsBitField); }
public SyntaxToken GetMarshalStorageLocationIdentifier(CsMarshalBase csElement) { return(MarshallerBase.GetMarshalStorageLocationIdentifier(csElement)); }
public StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) { return(ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(csElement.Name), GetMarshalStorageLocation(csElement)))); }
public bool CanMarshal(CsMarshalBase csElement) => csElement.IsInterfaceArray;
public StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame) { return(GenerateGCKeepAlive(csElement)); }
public bool CanMarshal(CsMarshalBase csElement) { return(csElement is CsField); }
public override bool CanMarshal(CsMarshalBase csElement) => csElement.IsBoolToInt && csElement.IsArray;
public StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) => LoopThroughArrayParameter( csElement, (publicElement, marshalElement) => CreateMarshalStructStatement(csElement, StructMarshalMethod.From, publicElement, marshalElement) );
public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) => PointerType(ParseTypeName($"{csElement.PublicType.QualifiedName}.__Native"));
public override bool CanMarshal(CsMarshalBase csElement) => csElement.IsArray && csElement.IsInterface;
public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) => IntPtrType;
public static bool IsApplicable(CsMarshalBase csElement) => csElement is CsParameter {
public abstract StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame);
public bool CanMarshal(CsMarshalBase csElement) => csElement is CsParameter {
public StatementSyntax GenerateManagedToNative(CsMarshalBase csElement, bool singleStackFrame) { return(null); }
public bool CanMarshal(CsMarshalBase csElement) => csElement.PublicType is CsEnum && !csElement.IsArray && csElement is CsParameter;
public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) { return(PointerType(ParseTypeName(csElement.PublicType.QualifiedName))); }
public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) => ParseTypeName(csElement.PublicType.QualifiedName);
public override StatementSyntax GenerateManagedToNative(CsMarshalBase csElement, bool singleStackFrame) => LoopThroughArrayParameter( csElement, (publicElement, marshalElement) => MarshalInterfaceInstanceToNative(csElement, publicElement, marshalElement) );
public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) { return(PointerType(IntPtrType)); }
public override StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame) => GenerateGCKeepAlive(csElement);
public StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame) { return(null); }
public override StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) => csElement switch {
public StatementSyntax GenerateManagedToNative(CsMarshalBase csElement, bool singleStackFrame) => GenerateCopyMemory(csElement, false);
public virtual bool CanMarshal(CsMarshalBase csElement) => implementation.CanMarshal(csElement);