(this BinaryWriter stream, object value)
| 651 | } |
| 652 | |
| 653 | internal static void WriteVariant(this BinaryWriter stream, object value) |
| 654 | { |
| 655 | if (value == null) |
| 656 | { |
| 657 | stream.Write((byte)0); |
| 658 | stream.Write(0); |
| 659 | return; |
| 660 | } |
| 661 | var type = value.GetType(); |
| 662 | var variantType = ToVariantType(type); |
| 663 | stream.Write((byte)variantType); |
| 664 | switch (variantType) |
| 665 | { |
| 666 | case VariantType.Object: |
| 667 | if (type != typeof(FlaxEngine.Object)) |
| 668 | { |
| 669 | stream.Write(int.MaxValue); |
| 670 | stream.WriteStrAnsi(type.FullName, 77); |
| 671 | } |
| 672 | else |
| 673 | stream.Write(0); |
| 674 | break; |
| 675 | case VariantType.Asset: |
| 676 | if (type != typeof(Asset)) |
| 677 | { |
| 678 | stream.Write(int.MaxValue); |
| 679 | stream.WriteStrAnsi(type.FullName, 77); |
| 680 | } |
| 681 | else |
| 682 | stream.Write(0); |
| 683 | break; |
| 684 | case VariantType.Enum: |
| 685 | case VariantType.Structure: |
| 686 | case VariantType.ManagedObject: |
| 687 | stream.Write(int.MaxValue); |
| 688 | stream.WriteStrAnsi(type.FullName, 77); |
| 689 | break; |
| 690 | case VariantType.Array: |
| 691 | if (type != typeof(object[])) |
| 692 | { |
| 693 | stream.Write(int.MaxValue); |
| 694 | stream.WriteStrAnsi(type.FullName, 77); |
| 695 | } |
| 696 | else |
| 697 | stream.Write(0); |
| 698 | break; |
| 699 | case VariantType.Dictionary: |
| 700 | if (type != typeof(Dictionary<object, object>)) |
| 701 | { |
| 702 | stream.Write(int.MaxValue); |
| 703 | stream.WriteStrAnsi(type.GetTypeName(), 77); |
| 704 | } |
| 705 | else |
| 706 | stream.Write(0); |
| 707 | break; |
| 708 | default: |
| 709 | stream.Write(0); |
| 710 | break; |
nothing calls this directly
no test coverage detected