Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions sources/ClangSharp.PInvokeGenerator/Abstractions/EnumDesc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,19 @@ public bool IsNested
{
readonly get
{
return (Flags & EnumFlags.Nested) != 0;
return GetFlag(EnumFlags.Nested);
}

set
{
Flags = value ? Flags | EnumFlags.Nested : Flags & ~EnumFlags.Nested;
SetFlag(EnumFlags.Nested, value);
}
}

private readonly bool GetFlag(EnumFlags flag) => (Flags & flag) != 0;

private void SetFlag(EnumFlags flag, bool value) => Flags = value ? Flags | flag : Flags & ~flag;

public Action<object> WriteCustomAttrs { get; set; }
public object CustomAttrGeneratorData { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,188 +27,168 @@ public bool IsVirtual
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsVirtual) != 0;
return GetFlag(FunctionOrDelegateFlags.IsVirtual);
}

set
{
Flags = value ? Flags | FunctionOrDelegateFlags.IsVirtual : Flags & ~FunctionOrDelegateFlags.IsVirtual;
SetFlag(FunctionOrDelegateFlags.IsVirtual, value);
}
}

public bool IsDllImport
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsDllImport) != 0;
return GetFlag(FunctionOrDelegateFlags.IsDllImport);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsDllImport
: Flags & ~FunctionOrDelegateFlags.IsDllImport;
SetFlag(FunctionOrDelegateFlags.IsDllImport, value);
}
}

public bool IsManualImport
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsManualImport) != 0;
return GetFlag(FunctionOrDelegateFlags.IsManualImport);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsManualImport
: Flags & ~FunctionOrDelegateFlags.IsManualImport;
SetFlag(FunctionOrDelegateFlags.IsManualImport, value);
}
}

public bool IsReadOnly
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsReadOnly) != 0;
return GetFlag(FunctionOrDelegateFlags.IsReadOnly);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsReadOnly
: Flags & ~FunctionOrDelegateFlags.IsReadOnly;
SetFlag(FunctionOrDelegateFlags.IsReadOnly, value);
}
}

public bool HasFnPtrCodeGen
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.HasFnPtrCodeGen) != 0;
return GetFlag(FunctionOrDelegateFlags.HasFnPtrCodeGen);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.HasFnPtrCodeGen
: Flags & ~FunctionOrDelegateFlags.HasFnPtrCodeGen;
SetFlag(FunctionOrDelegateFlags.HasFnPtrCodeGen, value);
}
}

public bool IsAggressivelyInlined
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsAggressivelyInlined) != 0;
return GetFlag(FunctionOrDelegateFlags.IsAggressivelyInlined);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsAggressivelyInlined
: Flags & ~FunctionOrDelegateFlags.IsAggressivelyInlined;
SetFlag(FunctionOrDelegateFlags.IsAggressivelyInlined, value);
}
}

public bool SetLastError
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.SetLastError) != 0;
return GetFlag(FunctionOrDelegateFlags.SetLastError);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.SetLastError
: Flags & ~FunctionOrDelegateFlags.SetLastError;
SetFlag(FunctionOrDelegateFlags.SetLastError, value);
}
}

public bool IsCxx
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsCxx) != 0;
return GetFlag(FunctionOrDelegateFlags.IsCxx);
}

set
{
Flags = value ? Flags | FunctionOrDelegateFlags.IsCxx : Flags & ~FunctionOrDelegateFlags.IsCxx;
SetFlag(FunctionOrDelegateFlags.IsCxx, value);
}
}

public bool NeedsNewKeyword
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.NeedsNewKeyword) != 0;
return GetFlag(FunctionOrDelegateFlags.NeedsNewKeyword);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.NeedsNewKeyword
: Flags & ~FunctionOrDelegateFlags.NeedsNewKeyword;
SetFlag(FunctionOrDelegateFlags.NeedsNewKeyword, value);
}
}

public bool IsUnsafe
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsUnsafe) != 0;
return GetFlag(FunctionOrDelegateFlags.IsUnsafe);
}

set
{
Flags = value ? Flags | FunctionOrDelegateFlags.IsUnsafe : Flags & ~FunctionOrDelegateFlags.IsUnsafe;
SetFlag(FunctionOrDelegateFlags.IsUnsafe, value);
}
}

public bool IsCtxCxxRecord
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsCtxCxxRecord) != 0;
return GetFlag(FunctionOrDelegateFlags.IsCtxCxxRecord);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsCtxCxxRecord
: Flags & ~FunctionOrDelegateFlags.IsCtxCxxRecord;
SetFlag(FunctionOrDelegateFlags.IsCtxCxxRecord, value);
}
}

public bool IsCxxRecordCtxUnsafe
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsCxxRecordCtxUnsafe) != 0;
return GetFlag(FunctionOrDelegateFlags.IsCxxRecordCtxUnsafe);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsCxxRecordCtxUnsafe
: Flags & ~FunctionOrDelegateFlags.IsCxxRecordCtxUnsafe;
SetFlag(FunctionOrDelegateFlags.IsCxxRecordCtxUnsafe, value);
}
}

public bool IsMemberFunction
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsMemberFunction) != 0;
return GetFlag(FunctionOrDelegateFlags.IsMemberFunction);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsMemberFunction
: Flags & ~FunctionOrDelegateFlags.IsMemberFunction;
SetFlag(FunctionOrDelegateFlags.IsMemberFunction, value);
}
}

Expand Down Expand Up @@ -236,32 +216,32 @@ public bool NeedsReturnFixup
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.NeedsReturnFixup) != 0;
return GetFlag(FunctionOrDelegateFlags.NeedsReturnFixup);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.NeedsReturnFixup
: Flags & ~FunctionOrDelegateFlags.NeedsReturnFixup;
SetFlag(FunctionOrDelegateFlags.NeedsReturnFixup, value);
}
}

public bool IsCxxConstructor
{
readonly get
{
return (Flags & FunctionOrDelegateFlags.IsCxxConstructor) != 0;
return GetFlag(FunctionOrDelegateFlags.IsCxxConstructor);
}

set
{
Flags = value
? Flags | FunctionOrDelegateFlags.IsCxxConstructor
: Flags & ~FunctionOrDelegateFlags.IsCxxConstructor;
SetFlag(FunctionOrDelegateFlags.IsCxxConstructor, value);
}
}

private readonly bool GetFlag(FunctionOrDelegateFlags flag) => (Flags & flag) != 0;

private void SetFlag(FunctionOrDelegateFlags flag, bool value) => Flags = value ? Flags | flag : Flags & ~flag;

public Action<object> WriteCustomAttrs { get; set; }
public object CustomAttrGeneratorData { get; set; }
}
20 changes: 12 additions & 8 deletions sources/ClangSharp.PInvokeGenerator/Abstractions/StructDesc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,54 +22,58 @@ public bool IsNested
{
readonly get
{
return (Flags & StructFlags.Nested) != 0;
return GetFlag(StructFlags.Nested);
}

set
{
Flags = value ? Flags | StructFlags.Nested : Flags & ~StructFlags.Nested;
SetFlag(StructFlags.Nested, value);
}
}

public bool IsUnsafe
{
readonly get
{
return (Flags & StructFlags.Unsafe) != 0;
return GetFlag(StructFlags.Unsafe);
}

set
{
Flags = value ? Flags | StructFlags.Unsafe : Flags & ~StructFlags.Unsafe;
SetFlag(StructFlags.Unsafe, value);
}
}

public bool HasVtbl
{
readonly get
{
return (Flags & StructFlags.Vtbl) != 0;
return GetFlag(StructFlags.Vtbl);
}

set
{
Flags = value ? Flags | StructFlags.Vtbl : Flags & ~StructFlags.Vtbl;
SetFlag(StructFlags.Vtbl, value);
}
}

public bool IsUnion
{
readonly get
{
return (Flags & StructFlags.Union) != 0;
return GetFlag(StructFlags.Union);
}

set
{
Flags = value ? Flags | StructFlags.Union : Flags & ~StructFlags.Union;
SetFlag(StructFlags.Union, value);
}
}

private readonly bool GetFlag(StructFlags flag) => (Flags & flag) != 0;

private void SetFlag(StructFlags flag, bool value) => Flags = value ? Flags | flag : Flags & ~flag;

public Action<object> WriteCustomAttrs { get; set; }
public object CustomAttrGeneratorData { get; set; }

Expand Down
Loading