예제 #1
0
        public static void GenerateBinaryDeserializers()
        {
            var jd = new BinaryDeserializerGenerator("GeneratedDeserializersBIN");

            using (var ms = new MemoryStream())
                using (var sw = new StreamWriter(ms)) {
                    jd.GenWriter = sw;
                    jd.GenerateHeader();

                    var types    = new List <Type>();
                    var assembly = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.StartsWith("Lime", StringComparison.OrdinalIgnoreCase)).First();
                    foreach (var t in assembly.GetTypes())
                    {
                        if (t.GetCustomAttribute <YuzuDontGenerateDeserializerAttribute>(false) != null)
                        {
                            continue;
                        }
                        if (t.IsGenericType)
                        {
                            if (t == typeof(Keyframe <>) || t == typeof(Animator <>))
                            {
                                foreach (var specializationType in AnimatorRegistry.Instance.EnumerateRegisteredTypes())
                                {
                                    var specializedType = t.MakeGenericType(new[] { specializationType });
                                    types.Add(specializedType);
                                }
                            }
                            else
                            {
                                foreach (var specializationType in t.GetCustomAttributes <YuzuSpecializeWithAttribute>().Select(a => a.Type))
                                {
                                    var specializedType = t.MakeGenericType(new[] { specializationType });
                                    types.Add(specializedType);
                                }
                            }
                        }
                        else
                        {
                            var meta = Yuzu.Metadata.Meta.Get(t, Serialization.YuzuCommonOptions);
                            if (meta.Items.Count != 0)
                            {
                                types.Add(t);
                            }
                        }
                    }
                    types.Sort((a, b) => a.FullName.CompareTo(b.FullName));
                    foreach (var t in types)
                    {
                        jd.Generate(t);
                        Console.WriteLine(t.FullName);
                    }

                    jd.GenerateFooter();
                    sw.Flush();
                    ms.WriteTo(new FileStream(Path.Combine(Toolbox.CalcCitrusDirectory(), "Lime", "Source", "GeneratedDeserializersBIN.cs"), FileMode.Create));
                }
        }
예제 #2
0
        public static void GenerateDeserializers(string filename, string rootNamespace, List <Type> types)
        {
            var yjdg = new BinaryDeserializerGenerator(rootNamespace);

            using (var ms = new MemoryStream())
                using (var sw = new StreamWriter(ms)) {
                    yjdg.GenWriter = sw;
                    yjdg.GenerateHeader();
                    foreach (var generate in types
                             .Select(t => yjdg.GetType()
                                     .GetMethod("Generate")
                                     .MakeGenericMethod(t)))
                    {
                        generate.Invoke(yjdg, new object[] { });
                    }
                    yjdg.GenerateFooter();
                    sw.Flush();
                    ms.WriteTo(new FileStream(filename, FileMode.Create));
                }
        }
예제 #3
0
파일: Main.cs 프로젝트: rotanov/Yuzu
        public static void Main()
        {
            var jd = JsonDeserializerGenerator.Instance;

            jd.Options.TagMode = TagMode.Names;
            Gen(@"..\..\GeneratedJson.cs", jd, g => {
                var js = g as JsonDeserializerGenerator;
                jd.Generate <Sample1>();
                jd.Generate <Sample2>();
                jd.Generate <Sample3>();
                jd.Generate <SampleEnumMemberTyped>();
                jd.JsonOptions.EnumAsString = true;
                jd.Generate <Sample4>();
                jd.Generate <SampleDecimal>();
                jd.Generate <SampleNullable>();
                jd.Generate <SampleBool>();
                jd.JsonOptions.Comments = true;
                jd.Generate <SampleList>();
                jd.JsonOptions.Comments = false;
                jd.Generate <SampleObj>();
                jd.Generate <SampleDict>();
                jd.Generate <SampleSortedDict>();
                jd.Generate <SampleDictKeys>();
                jd.Generate <ISampleMember>();
                jd.Generate <SampleMemberI>();
                jd.Generate <List <ISampleMember> >();
                jd.JsonOptions.ArrayLengthPrefix = true;
                jd.Generate <SampleArray>();
                jd.JsonOptions.ArrayLengthPrefix = false;
                jd.Generate <SampleArrayOfArray>();
                jd.Generate <SampleArrayNDim>();
                jd.Generate <SampleBase>();
                jd.Generate <SampleDerivedA>();
                jd.Generate <SampleDerivedB>();
                jd.Generate <SampleMatrix>();
                jd.Generate <SamplePoint>();
                jd.Generate <SampleRect>();
                jd.Generate <SampleDate>();
                jd.Generate <Color>();
                jd.Generate <List <List <int> > >();
                jd.Generate <SampleClassList>();
                jd.Generate <SampleSmallTypes>();
                jd.Generate <SampleWithNullFieldCompact>();
                jd.Generate <SampleNested.NestedClass>();
                jd.Generate <SampleNested>();
                jd.Options.TagMode = TagMode.Aliases;
                jd.Generate <SamplePerson>();
                jd.Generate <ISample>();
                jd.Generate <SampleInterfaced>();
                jd.Generate <SampleInterfaceField>();
                jd.Generate <SampleInterfacedGeneric <string> >();
                jd.Generate <SampleAbstract>();
                jd.Generate <SampleConcrete>();
                jd.Generate <SampleCollection <int> >();
                jd.Generate <SampleExplicitCollection <int> >();
                jd.Generate <SampleWithCollection>();
                jd.Generate <SampleConcreteCollection>();
                jd.Generate <SampleAfter2>();
                jd.Generate <SampleAfterSerialization>();
                jd.Generate <SampleBeforeDeserialization>();
                jd.Generate <SampleMerge>();
                jd.Generate <SampleAssemblyDerivedR>();
                jd.Generate <SampleAliasMany>();
                jd.Generate <SamplePrivateConstructor>();
                jd.Generate <List <YuzuTestAssembly.SampleAssemblyBase> >();
                jd.Generate <YuzuTestAssembly.SampleAssemblyBase>();
                jd.Generate <YuzuTestAssembly.SampleAssemblyDerivedQ>();
                jd.Generate <YuzuTest2.SampleNamespace>();
            });

            var bdg = new BinaryDeserializerGenerator();

            bdg.SafetyChecks = true;
            Gen(@"..\..\GeneratedBinary.cs", bdg, bd => {
                bd.Generate <Sample1>();
                bd.Generate <Sample2>();
                bd.Generate <Sample3>();
                bd.Generate <SampleEnumMemberTyped>();
                bd.Generate <Sample4>();
                bd.Generate <SampleDecimal>();
                bd.Generate <SampleNullable>();
                bd.Generate <SampleObj>();
                bd.Generate <SampleDict>();
                bd.Generate <SampleSortedDict>();
                bd.Generate <SampleDictKeys>();
                bd.Generate <SampleMemberI>();
                bd.Generate <SampleArray>();
                bd.Generate <SampleArrayOfArray>();
                bd.Generate <SampleArrayNDim>();
                bd.Generate <SampleBase>();
                bd.Generate <SampleDerivedA>();
                bd.Generate <SampleDerivedB>();
                bd.Generate <SampleMatrix>();
                bd.Generate <SamplePoint>();
                bd.Generate <SampleRect>();
                bd.Generate <SampleDefault>();
                bd.Generate <Color>();
                bd.Generate <SampleClassList>();
                bd.Generate <SampleSmallTypes>();
                bd.Generate <SampleWithNullFieldCompact>();
                bd.Generate <SampleNested.NestedClass>();
                bd.Generate <SampleNested>();
                bd.Generate <SamplePerson>();
                bd.Generate <SampleInterfaceField>();
                bd.Generate <SampleInterfacedGeneric <string> >();
                bd.Generate <SampleConcrete>();
                bd.Generate <SampleWithCollection>();
                bd.Generate <SampleAfter2>();
                bd.Generate <SampleAfterSerialization>();
                bd.Generate <SampleBeforeDeserialization>();
                bd.Generate <SampleMerge>();
                bd.Generate <SampleAssemblyDerivedR>();
                bd.Generate <SampleAoS.Color>();
                bd.Generate <SampleAoS.Vertex>();
                bd.Generate <SampleAoS.S>();
                bd.Generate <SampleAoS>();
                bd.Generate <SampleStructWithProps>();
                bd.Generate <SampleAliasMany>();
                bd.Generate <SamplePrivateConstructor>();
                bd.Generate <YuzuTestAssembly.SampleAssemblyBase>();
                bd.Generate <YuzuTestAssembly.SampleAssemblyDerivedQ>();
                bd.Generate <YuzuTest2.SampleNamespace>();
                bd.Generate <SampleExplicitCollection <int> >();
            });
            var bdg1 = new BinaryDeserializerGenerator(
                className: "BinaryDeserializerGenDerived", baseClassName: "BinaryDeserializerGen");

            Gen(@"..\..\GeneratedBinaryDerived.cs", bdg1, bd => {
                bd.Generate <SampleMergeNonPrimitive>();
            });
            var cg = new ClonerGenerator();

            bdg.SafetyChecks = true;
            Gen(@"..\..\GeneratedCloner.cs", cg, cd => {
                cd.Generate <Sample1>();
                cd.Generate <Sample2>();
                cd.Generate <Sample3>();
                cd.Generate <SampleGenNoGen>();
                cd.Generate <SampleArray>();
                cd.Generate <SampleArrayOfClass>();
                cd.Generate <SampleArrayNDim>();
                cd.Generate <SampleArrayNDimOfClass>();
                cd.Generate <SampleList>();
                cd.Generate <SampleNullable>();
                cd.Generate <SampleObj>();
                cd.Generate <SampleItemObj>();
                cd.Generate <SampleDict>();
                cd.Generate <SampleDictKeys>();
                cd.Generate <SamplePoint>();
                cd.Generate <SampleRect>();
                cd.Generate <SampleMatrix>();
                cd.Generate <SampleStructWithClass>();
                cd.Generate <SamplePerson>();
                cd.Generate <SamplePrivateConstructor>();
                cd.Generate <SampleBeforeSerialization>();
                cd.Generate <SampleBefore2>();
                cd.Generate <SampleAfterSerialization>();
                cd.Generate <SampleBeforeDeserialization>();
                cd.Generate <SampleAfterDeserialization>();
                cd.Generate <SampleAfter2>();
                cd.Generate <SampleSurrogateColor>();
                cd.Generate <Color>();
                cd.Generate <SampleWithCopyable>();
                cd.Generate <SampleCopyable>();
                cd.Generate <SampleWithCopyableItems>();
                cd.Generate <SampleMerge>();
                cd.Generate <SampleMergeNonPrimitive>();
                cd.Generate <SampleBase>();
                cd.Generate <SampleDerivedA>();
                cd.Generate <SampleDerivedB>();
                cd.Generate <SampleSealed>();
                cd.Generate <SampleSerializeIf>();
                cd.Generate <SampleCollection <int> >();
                cd.Generate <SampleCollection <Sample1> >();
                cd.Generate <SampleWithCollectionMerge>();
                cd.Generate <SampleExplicitCollection <int> >();
            });
            var cg1 = new ClonerGenerator(
                className: "ClonerGenDerived", baseClassName: "ClonerGen", parentGen: cg);

            Gen(@"..\..\GeneratedClonerDerived.cs", cg1, cd => {
                cd.Generate <SampleClonerGenDerived>();
            });
        }
예제 #4
0
파일: Main.cs 프로젝트: klenin/Yuzu
        public static void Main()
        {
            var jd = JsonDeserializerGenerator.Instance;
            jd.Options.TagMode = TagMode.Names;
            Gen(@"..\..\GeneratedJson.cs", jd, g => {
                var js = g as JsonDeserializerGenerator;
                jd.Generate<Sample1>();
                jd.Generate<Sample2>();
                jd.Generate<Sample3>();
                jd.JsonOptions.EnumAsString = true;
                jd.Generate<Sample4>();
                jd.Generate<SampleDecimal>();
                jd.Generate<SampleNullable>();
                jd.Generate<SampleBool>();
                jd.Generate<SampleList>();
                jd.Generate<SampleObj>();
                jd.Generate<SampleDict>();
                jd.Generate<SampleDictKeys>();
                jd.Generate<ISampleMember>();
                jd.Generate<SampleMemberI>();
                jd.Generate<List<ISampleMember>>();
                jd.JsonOptions.ArrayLengthPrefix = true;
                jd.Generate<SampleArray>();
                jd.Generate<SampleBase>();
                jd.Generate<SampleDerivedA>();
                jd.Generate<SampleDerivedB>();
                jd.Generate<SampleMatrix>();
                jd.Generate<SamplePoint>();
                jd.Generate<SampleRect>();
                jd.Generate<SampleDate>();
                jd.Generate<Color>();
                jd.Generate<List<List<int>>>();
                jd.Generate<SampleClassList>();
                jd.Generate<SampleSmallTypes>();
                jd.Generate<SampleWithNullFieldCompact>();
                jd.Generate<SampleNested.NestedClass>();
                jd.Generate<SampleNested>();
                jd.Options.TagMode = TagMode.Aliases;
                jd.Generate<SamplePerson>();
                jd.Generate<ISample>();
                jd.Generate<SampleInterfaced>();
                jd.Generate<SampleInterfaceField>();
                jd.Generate<SampleInterfacedGeneric<string>>();
                jd.Generate<SampleAbstract>();
                jd.Generate<SampleConcrete>();
                jd.Generate<SampleCollection<int>>();
                jd.Generate<SampleExplicitCollection<int>>();
                jd.Generate<SampleWithCollection>();
                jd.Generate<SampleConcreteCollection>();
                jd.Generate<SampleAfter2>();
                jd.Generate<SampleMerge>();
                jd.Generate<SampleAssemblyDerivedR>();
                jd.Generate<List<YuzuTestAssembly.SampleAssemblyBase>>();
                jd.Generate<YuzuTestAssembly.SampleAssemblyBase>();
                jd.Generate<YuzuTestAssembly.SampleAssemblyDerivedQ>();
                jd.Generate<YuzuTest2.SampleNamespace>();
            });

            var bdg = new BinaryDeserializerGenerator();
            bdg.SafetyChecks = true;
            Gen(@"..\..\GeneratedBinary.cs", bdg, bd => {
                bd.Generate<Sample1>();
                bd.Generate<Sample2>();
                bd.Generate<Sample3>();
                bd.Generate<Sample4>();
                bd.Generate<SampleDecimal>();
                bd.Generate<SampleNullable>();
                bd.Generate<SampleObj>();
                bd.Generate<SampleDict>();
                bd.Generate<SampleDictKeys>();
                bd.Generate<SampleMemberI>();
                bd.Generate<SampleArray>();
                bd.Generate<SampleBase>();
                bd.Generate<SampleDerivedA>();
                bd.Generate<SampleDerivedB>();
                bd.Generate<SampleMatrix>();
                bd.Generate<SamplePoint>();
                bd.Generate<SampleRect>();
                bd.Generate<SampleDefault>();
                bd.Generate<Color>();
                bd.Generate<SampleClassList>();
                bd.Generate<SampleSmallTypes>();
                bd.Generate<SampleWithNullFieldCompact>();
                bd.Generate<SampleNested.NestedClass>();
                bd.Generate<SampleNested>();
                bd.Generate<SamplePerson>();
                bd.Generate<SampleInterfaceField>();
                bd.Generate<SampleInterfacedGeneric<string>>();
                bd.Generate<SampleConcrete>();
                bd.Generate<SampleWithCollection>();
                bd.Generate<SampleAfter2>();
                bd.Generate<SampleMerge>();
                bd.Generate<SampleAssemblyDerivedR>();
                bd.Generate<YuzuTestAssembly.SampleAssemblyBase>();
                bd.Generate<YuzuTestAssembly.SampleAssemblyDerivedQ>();
                bd.Generate<YuzuTest2.SampleNamespace>();
            });
        }
예제 #5
0
        public static void GenerateBinaryDeserializers()
        {
            var jd = new BinaryDeserializerGenerator("GeneratedDeserializersBIN");

            using (var ms = new MemoryStream())
                using (var sw = new StreamWriter(ms)) {
                    jd.GenWriter = sw;
                    jd.GenerateHeader();
                    jd.Generate <Font>();
                    jd.Generate <SerializableSample>();
                    jd.Generate <KerningPair>();
                    jd.Generate <FontChar>();
                    jd.Generate <SerializableFont>();
                    jd.Generate <Mesh3D.BlendIndices>();
                    jd.Generate <Mesh3D.BlendWeights>();
                    jd.Generate <Mesh3D.Vertex>();
                    jd.Generate <Mesh>();
                    jd.Generate <VertexBuffer <Mesh3D.Vertex> >();
                    jd.Generate <IndexBuffer>();
                    jd.Generate <TextureAtlasElement.Params>();
                    jd.Generate <BitSet32>();
                    jd.Generate <BoundingSphere>();
                    jd.Generate <Color4>();
                    jd.Generate <IntRectangle>();
                    jd.Generate <IntVector2>();
                    jd.Generate <Matrix32>();
                    jd.Generate <Matrix44>();
                    jd.Generate <NumericRange>();
                    jd.Generate <Plane>();
                    jd.Generate <Quaternion>();
                    jd.Generate <Ray>();
                    jd.Generate <Rectangle>();
                    jd.Generate <Size>();
                    jd.Generate <Vector2>();
                    jd.Generate <Vector3>();
                    jd.Generate <Vector4>();
                    jd.Generate <Camera3D>();
                    jd.Generate <CommonMaterial>();
                    jd.Generate <Mesh3D>();
                    jd.Generate <Submesh3D>();
                    jd.Generate <Node3D>();
                    jd.Generate <Spline3D>();
                    jd.Generate <SplinePoint3D>();
                    jd.Generate <Viewport3D>();
                    jd.Generate <Animation>();
                    jd.Generate <Spline>();
                    jd.Generate <LinearLayout>();

                    jd.Generate <Animator <string> >();
                    jd.Generate <Animator <int> >();
                    jd.Generate <Animator <bool> >();
                    jd.Generate <Animator <Blending> >();
                    jd.Generate <Animator <ITexture> >();
                    jd.Generate <Animator <NumericRange> >();
                    jd.Generate <Animator <Vector2> >();
                    jd.Generate <Animator <Color4> >();
                    jd.Generate <Animator <float> >();
                    jd.Generate <Animator <EmitterShape> >();
                    jd.Generate <Animator <AudioAction> >();
                    jd.Generate <Animator <SerializableSample> >();
                    jd.Generate <Animator <HAlignment> >();
                    jd.Generate <Animator <VAlignment> >();
                    jd.Generate <Animator <MovieAction> >();
                    jd.Generate <Animator <ShaderId> >();
                    jd.Generate <Animator <Vector3> >();
                    jd.Generate <Animator <Quaternion> >();
                    jd.Generate <Animator <EmissionType> >();
                    jd.Generate <NumericAnimator>();
                    jd.Generate <Vector2Animator>();
                    jd.Generate <Color4Animator>();
                    jd.Generate <QuaternionAnimator>();
                    jd.Generate <Vector3Animator>();
                    jd.Generate <Matrix44Animator>();

                    jd.Generate <Keyframe <string> >();
                    jd.Generate <Keyframe <int> >();
                    jd.Generate <Keyframe <bool> >();
                    jd.Generate <Keyframe <Blending> >();
                    jd.Generate <Keyframe <ITexture> >();
                    jd.Generate <Keyframe <NumericRange> >();
                    jd.Generate <Keyframe <Vector2> >();
                    jd.Generate <Keyframe <Color4> >();
                    jd.Generate <Keyframe <float> >();
                    jd.Generate <Keyframe <EmitterShape> >();
                    jd.Generate <Keyframe <AudioAction> >();
                    jd.Generate <Keyframe <SerializableSample> >();
                    jd.Generate <Keyframe <HAlignment> >();
                    jd.Generate <Keyframe <VAlignment> >();
                    jd.Generate <Keyframe <MovieAction> >();
                    jd.Generate <Keyframe <ShaderId> >();
                    jd.Generate <Keyframe <Vector3> >();
                    jd.Generate <Keyframe <Quaternion> >();
                    jd.Generate <Keyframe <EmissionType> >();
                    jd.Generate <Keyframe <Matrix44> >();

                    jd.Generate <Audio>();
                    jd.Generate <BoneWeight>();
                    jd.Generate <SkinningWeights>();
                    jd.Generate <Bone>();
                    jd.Generate <BoneArray>();
                    jd.Generate <BoneArray.Entry>();
                    jd.Generate <Button>();
                    jd.Generate <DistortionMesh>();
                    jd.Generate <DistortionMeshPoint>();
                    jd.Generate <Frame>();
                    jd.Generate <Image>();
                    jd.Generate <ImageCombiner>();
                    jd.Generate <Marker>();
                    jd.Generate <Movie>();
                    jd.Generate <NineGrid>();
                    jd.Generate <ParticleEmitter>();
                    jd.Generate <ParticleModifier>();
                    jd.Generate <ParticlesMagnet>();
                    jd.Generate <PointObject>();
                    jd.Generate <Slider>();
                    jd.Generate <SplineGear>();
                    jd.Generate <SplinePoint>();
                    jd.Generate <RichText>();
                    jd.Generate <SimpleText>();
                    jd.Generate <TextStyle>();
                    jd.Generate <Widget>();
                    jd.Generate <SerializableTexture>();

                    jd.Generate <NodeReference <Widget> >();
                    jd.Generate <NodeReference <Spline> >();
                    jd.Generate <NodeReference <Camera3D> >();

                    jd.GenerateFooter();
                    sw.Flush();
                    var    executablePath = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                    string goUp           =

#if WIN
                        "/../../../..";
#elif MAC || MONOMAC
                        "/../../../../../../..";
#else
                        "";
                    throw new NotSupportedException();
#endif
                    ms.WriteTo(new FileStream(executablePath + goUp + @"/Lime/Source/GeneratedDeserializersBIN.cs", FileMode.Create));
                }
        }
예제 #6
0
파일: TestBinary.cs 프로젝트: klenin/Yuzu
        public void TestErrors()
        {
            var bd = new BinaryDeserializer();
            bd.Options.AllowEmptyTypes = true;
            var bdg = new BinaryDeserializerGenerator();

            XAssert.Throws<YuzuException>(() => bdg.Generate<ISample>(), "ISample");
            XAssert.Throws<YuzuException>(() => bdg.Generate<SampleAbstract>(), "SampleAbstract");
            XAssert.Throws<YuzuException>(() => bd.FromBytes<int>(new byte[] { 0xFF }), "255");

            XAssert.Throws<YuzuException>(() => bd.FromBytes(new byte[] { 0xFF }), "255");
            XAssert.Throws<YuzuException>(() => bd.FromBytes<int>(new byte[] { 0xFF }), "255");
            XAssert.Throws<YuzuException>(() => bd.FromBytes<int>(new byte[] { 07 }), "Int32");

            XAssert.Throws<YuzuException>(() => bd.FromBytes(new byte[] { (byte)RoughType.Any }), "pure");

            XAssert.Throws<YuzuException>(() => bd.FromBytes<Sample1>(SX(
                "20 01 00 " + XS("notype") + " 00 00 00 00"
            )), "YuzuUnknown");

            var w = new Sample1();
            XAssert.Throws<YuzuException>(() => bd.FromBytes(w, SX(
                "20 02 00 " + XS(typeof(Empty)) + " 00 00 00 00"
            )), "Sample1");

            var w2 = new Sample2Allow();
            XAssert.Throws<YuzuException>(() => bd.FromBytes(w2, SX(
                "20 02 00 00 00"
            )), "Sample2Allow");

            XAssert.Throws<YuzuException>(() => bd.FromBytes(w, SX("20 05 00")), "5");

            XAssert.Throws<YuzuException>(() => bd.FromBytes(w, SX(
                "20 03 00 " + XS(typeof(Sample1)) + " 00 00 00 00"
            )), " X ");

            XAssert.Throws<YuzuException>(() => bd.FromBytes(w, SX(
                "20 03 00 " + XS(typeof(Empty)) + " 00 01 " + XS("New", RoughType.Int) + " 00 00"
            )), "New");

            XAssert.Throws<YuzuException>(() => bd.FromBytes(w, SX(
                "20 03 00 " + XS(typeof(Sample1)) + " 00 01 " + XS("X", RoughType.String) + " 00 00"
            )), "Int32");
        }
예제 #7
0
        public static void Main()
        {
            var jd = JsonDeserializerGenerator.Instance;

            jd.Options.TagMode = TagMode.Names;
            Gen(@"..\..\GeneratedJson.cs", jd, g => {
                var js = g as JsonDeserializerGenerator;
                jd.Generate <Sample1>();
                jd.Generate <Sample2>();
                jd.Generate <Sample3>();
                jd.JsonOptions.EnumAsString = true;
                jd.Generate <Sample4>();
                jd.Generate <SampleDecimal>();
                jd.Generate <SampleNullable>();
                jd.Generate <SampleBool>();
                jd.Generate <SampleList>();
                jd.Generate <SampleObj>();
                jd.Generate <SampleDict>();
                jd.Generate <SampleDictKeys>();
                jd.Generate <ISampleMember>();
                jd.Generate <SampleMemberI>();
                jd.Generate <List <ISampleMember> >();
                jd.JsonOptions.ArrayLengthPrefix = true;
                jd.Generate <SampleArray>();
                jd.JsonOptions.ArrayLengthPrefix = false;
                jd.Generate <SampleArray2D>();
                jd.Generate <SampleBase>();
                jd.Generate <SampleDerivedA>();
                jd.Generate <SampleDerivedB>();
                jd.Generate <SampleMatrix>();
                jd.Generate <SamplePoint>();
                jd.Generate <SampleRect>();
                jd.Generate <SampleDate>();
                jd.Generate <Color>();
                jd.Generate <List <List <int> > >();
                jd.Generate <SampleClassList>();
                jd.Generate <SampleSmallTypes>();
                jd.Generate <SampleWithNullFieldCompact>();
                jd.Generate <SampleNested.NestedClass>();
                jd.Generate <SampleNested>();
                jd.Options.TagMode = TagMode.Aliases;
                jd.Generate <SamplePerson>();
                jd.Generate <ISample>();
                jd.Generate <SampleInterfaced>();
                jd.Generate <SampleInterfaceField>();
                jd.Generate <SampleInterfacedGeneric <string> >();
                jd.Generate <SampleAbstract>();
                jd.Generate <SampleConcrete>();
                jd.Generate <SampleCollection <int> >();
                jd.Generate <SampleExplicitCollection <int> >();
                jd.Generate <SampleWithCollection>();
                jd.Generate <SampleConcreteCollection>();
                jd.Generate <SampleAfter2>();
                jd.Generate <SampleMerge>();
                jd.Generate <SampleAssemblyDerivedR>();
                jd.Generate <SampleAliasMany>();
                jd.Generate <List <YuzuTestAssembly.SampleAssemblyBase> >();
                jd.Generate <YuzuTestAssembly.SampleAssemblyBase>();
                jd.Generate <YuzuTestAssembly.SampleAssemblyDerivedQ>();
                jd.Generate <YuzuTest2.SampleNamespace>();
            });

            var bdg = new BinaryDeserializerGenerator();

            bdg.SafetyChecks = true;
            Gen(@"..\..\GeneratedBinary.cs", bdg, bd => {
                bd.Generate <Sample1>();
                bd.Generate <Sample2>();
                bd.Generate <Sample3>();
                bd.Generate <Sample4>();
                bd.Generate <SampleDecimal>();
                bd.Generate <SampleNullable>();
                bd.Generate <SampleObj>();
                bd.Generate <SampleDict>();
                bd.Generate <SampleDictKeys>();
                bd.Generate <SampleMemberI>();
                bd.Generate <SampleArray>();
                bd.Generate <SampleArray2D>();
                bd.Generate <SampleBase>();
                bd.Generate <SampleDerivedA>();
                bd.Generate <SampleDerivedB>();
                bd.Generate <SampleMatrix>();
                bd.Generate <SamplePoint>();
                bd.Generate <SampleRect>();
                bd.Generate <SampleDefault>();
                bd.Generate <Color>();
                bd.Generate <SampleClassList>();
                bd.Generate <SampleSmallTypes>();
                bd.Generate <SampleWithNullFieldCompact>();
                bd.Generate <SampleNested.NestedClass>();
                bd.Generate <SampleNested>();
                bd.Generate <SamplePerson>();
                bd.Generate <SampleInterfaceField>();
                bd.Generate <SampleInterfacedGeneric <string> >();
                bd.Generate <SampleConcrete>();
                bd.Generate <SampleWithCollection>();
                bd.Generate <SampleAfter2>();
                bd.Generate <SampleMerge>();
                bd.Generate <SampleAssemblyDerivedR>();
                bd.Generate <SampleAoS.Color>();
                bd.Generate <SampleAoS.Vertex>();
                bd.Generate <SampleAoS.S>();
                bd.Generate <SampleAoS>();
                bd.Generate <SampleStructWithProps>();
                bd.Generate <SampleAliasMany>();
                bd.Generate <YuzuTestAssembly.SampleAssemblyBase>();
                bd.Generate <YuzuTestAssembly.SampleAssemblyDerivedQ>();
                bd.Generate <YuzuTest2.SampleNamespace>();
            });
        }