3#pragma warning disable CS0169
5#pragma warning restore CS0169
18 public void Reset(
Stream stream,
int version = 0,
object context =
null) {
21 Reset(version, context);
28 public override void Serialize(
string name, sbyte value) {
32 public override void Serialize(
string name,
byte value) {
36 public override void Serialize(
string name,
short value) {
40 public override void Serialize(
string name, ushort value) {
44 public override void Serialize(
string name,
int value) {
53 public override void Serialize(
string name, uint value) {
57 public override void Serialize(
string name,
long value) {
61 public override void Serialize(
string name, ulong value) {
65 public override void Serialize(
string name,
float value) {
69 public override void Serialize(
string name,
double value) {
73 public override void Serialize(
string name,
bool value) {
77 public override void Serialize(
string name,
char value) {
81 public override void Serialize(
string name,
string value) {
85 else if (!
m_stringIds.TryGetValue(value, out
int value2)) {
86 value2 = m_stringIds.Count + 1;
88 m_writer.Write7BitEncodedInt(value2);
92 m_writer.Write7BitEncodedInt(value2);
96 public override void Serialize(
string name,
byte[] value) {
97 m_writer.Write7BitEncodedInt(value.Length);
101 public override void Serialize(
string name,
int length,
byte[] value) {
102 if (value.Length != length) {
103 throw new InvalidOperationException(
"Invalid fixed array length.");
110 if (collection is IList<T> { Count: var count } list) {
112 for (
int i = 0; i < count; i++) {
118 IEnumerable<T> enumerable = collection as T[] ?? collection.ToArray();
121 foreach (T item
in enumerable) {
130 foreach (KeyValuePair<K, V> item
in dictionary) {
136 public override void WriteObjectInfo(
int? objectId,
bool isReference, Type runtimeType) {
140 else if (runtimeType !=
null) {
141 if (objectId.HasValue) {
142 Serialize(
null, 7 | (objectId.Value << 4));
149 else if (objectId.HasValue) {
150 Serialize(
null, 3 | (objectId.Value << 4));
static SerializeData GetSerializeData(Type type, bool allowEmptySerializer)
override void Serialize(string name, uint value)
override void SerializeCollection< T >(string name, Func< T, string > itemNameFunc, IEnumerable< T > collection)
override void Serialize(string name, short value)
BinaryOutputArchive(Stream stream, int version=0, object context=null) void Reset(Stream stream, int version=0, object context=null)
override void Serialize(string name, double value)
override void SerializeDictionary< K, V >(string name, IDictionary< K, V > dictionary)
Dictionary< string, int > m_stringIds
override void Serialize(string name, ulong value)
override void Serialize(string name, char value)
override void Serialize(string name, bool value)
EngineBinaryWriter m_writer
override void Serialize(string name, sbyte value)
override void Serialize(string name, byte[] value)
override void Serialize(string name, int length, byte[] value)
override void Serialize(string name, int value)
override void Serialize(string name, long value)
override void WriteObjectInfo(int? objectId, bool isReference, Type runtimeType)
override void Serialize(string name, byte value)
override void Serialize(string name, float value)
override void Serialize(string name, string value)
override void Serialize(string name, ushort value)
virtual void WriteObject(string name, SerializeData staticSerializeData, object value)
OutputArchive(int version, object context)