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; } } ```

近期下载者

相关文件


收藏者