BitFieldGenerator
所属分类:自动编程
开发工具:C#
文件大小:36KB
下载次数:0
上传日期:2022-07-05 11:19:47
上 传 者:
sh-1993
说明: 用于元编程以生成位字段的Roslyn Code Fix提供程序
(Roslyn Code Fix provider for metaprogramming to generate bit fields)
文件列表:
BitFieldGenerator (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator.sln (2112, 2022-07-05)
BitFieldGenerator\BitFieldGenerator (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\BitFieldGenerator.Test.csproj (1003, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\DataSource (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\DataSource\result-schema-v1.json (836, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\DataSource\result-schema-v2.json (943, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Helpers (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Helpers\CodeFixVerifier.Helper.cs (4043, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Helpers\DiagnosticResult.cs (2216, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Helpers\DiagnosticVerifier.Helper.cs (8276, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\UnitTests.cs (2152, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Verifiers (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Verifiers\CodeFixVerifier.cs (7414, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Verifiers\ConventionCodeFixVerifier.cs (13698, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Test\Verifiers\DiagnosticVerifier.cs (14017, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Vsix (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Vsix\BitFieldGenerator.Vsix.csproj (3561, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.Vsix\source.extension.vsixmanifest (1143, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\BitFieldGenerator.csproj (1262, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\CodeFixProvider.cs (8425, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\DataModels (0, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\DataModels\BitFieldDefinition.cs (401, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\DataModels\Field.cs (2000, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\DataModels\SyntaxExtensions.cs (964, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\Diagnostic.nuspec (1374, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\DiagnosticAnalyzer.cs (2525, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\Resources.Designer.cs (3869, 2022-07-05)
BitFieldGenerator\BitFieldGenerator\BitFieldGenerator\Resources.resx (6369, 2022-07-05)
LICENSE (1083, 2022-07-05)
# BitFieldGenerator
Roslyn Code Fix provider for metaprogramming to generate bit fields
original code:
```cs
struct MyCode
{
struct BitFields
{
[BitField(10)]
short X;
[BitField(2)]
byte Y;
[BitField(12)]
short Z;
[BitField(24)]
int W;
}
long _value;
}
```
generated code:
```cs
partial struct MyCode
{
public short X => (short)((_value >> 0) & 0x3FF);
public byte Y => (byte)((_value >> 10) & 0x3);
public short Z => (short)((_value >> 12) & 0xFFF);
public int W => (int)((_value >> 24) & 0xFFFFFF);
public MyCode(short x, byte y, short z, int w)
{
_value = 0;
_value |= (long)(x & 0x3FF) << 0;
_value |= (long)(y & 0x3) << 10;
_value |= (long)(z & 0xFFF) << 12;
_value |= (long)(w & 0xFFFFFF) << 24;
}
}
```
近期下载者:
相关文件:
收藏者: