public void CustomAttributeElementTypeEncoder_Primitives() { var b = new BlobBuilder(); var e = new CustomAttributeElementTypeEncoder(b); Assert.Same(b, e.Builder); e.Boolean(); AssertEx.Equal(new byte[] { 0x02 }, b.ToArray()); b.Clear(); e.Char(); AssertEx.Equal(new byte[] { 0x03 }, b.ToArray()); b.Clear(); e.SByte(); AssertEx.Equal(new byte[] { 0x04 }, b.ToArray()); b.Clear(); e.Byte(); AssertEx.Equal(new byte[] { 0x05 }, b.ToArray()); b.Clear(); e.Int16(); AssertEx.Equal(new byte[] { 0x06 }, b.ToArray()); b.Clear(); e.UInt16(); AssertEx.Equal(new byte[] { 0x07 }, b.ToArray()); b.Clear(); e.Int32(); AssertEx.Equal(new byte[] { 0x08 }, b.ToArray()); b.Clear(); e.UInt32(); AssertEx.Equal(new byte[] { 0x09 }, b.ToArray()); b.Clear(); e.Int64(); AssertEx.Equal(new byte[] { 0x0A }, b.ToArray()); b.Clear(); e.UInt64(); AssertEx.Equal(new byte[] { 0x0B }, b.ToArray()); b.Clear(); e.Single(); AssertEx.Equal(new byte[] { 0x0C }, b.ToArray()); b.Clear(); e.Double(); AssertEx.Equal(new byte[] { 0x0D }, b.ToArray()); b.Clear(); e.String(); AssertEx.Equal(new byte[] { 0x0E }, b.ToArray()); b.Clear(); }
public static void CustomElementType(this CustomAttributeElementTypeEncoder typeEncoder, IFieldSymbol field) { switch (field.Type.SpecialType) { case SpecialType.System_Boolean: typeEncoder.Boolean(); break; case SpecialType.System_Byte: typeEncoder.Byte(); break; case SpecialType.System_Int16: typeEncoder.Int16(); break; case SpecialType.System_Int32: typeEncoder.Int32(); break; case SpecialType.System_Int64: typeEncoder.Int64(); break; case SpecialType.System_UInt16: typeEncoder.UInt16(); break; case SpecialType.System_UInt32: typeEncoder.UInt32(); break; case SpecialType.System_UInt64: typeEncoder.UInt64(); break; case SpecialType.System_Single: typeEncoder.Single(); break; case SpecialType.System_Double: typeEncoder.Double(); break; case SpecialType.System_Char: typeEncoder.Char(); break; case SpecialType.System_String: typeEncoder.String(); break; case SpecialType.System_Enum: typeEncoder.Enum(field.Type.ToString()); break; case SpecialType.System_SByte: typeEncoder.SByte(); break; default: throw new NotImplementedException(); } }