in src/Azure.IIoT.OpcUa/src/Encoders/BaseAvroEncoder.cs [1547:1634]
protected virtual void WriteScalar(BuiltInType builtInType, object valueToEncode)
{
switch (builtInType)
{
case BuiltInType.Null:
WriteNull(null, valueToEncode);
return;
case BuiltInType.Boolean:
WriteBoolean(null, (bool)valueToEncode);
return;
case BuiltInType.SByte:
WriteSByte(null, (sbyte)valueToEncode);
return;
case BuiltInType.Byte:
WriteByte(null, (byte)valueToEncode);
return;
case BuiltInType.Int16:
WriteInt16(null, (short)valueToEncode);
return;
case BuiltInType.UInt16:
WriteUInt16(null, (ushort)valueToEncode);
return;
case BuiltInType.Int32:
WriteInt32(null, (int)valueToEncode);
return;
case BuiltInType.UInt32:
WriteUInt32(null, (uint)valueToEncode);
return;
case BuiltInType.Int64:
WriteInt64(null, (long)valueToEncode);
return;
case BuiltInType.UInt64:
WriteUInt64(null, (ulong)valueToEncode);
return;
case BuiltInType.Float:
WriteFloat(null, (float)valueToEncode);
return;
case BuiltInType.Double:
WriteDouble(null, (double)valueToEncode);
return;
case BuiltInType.String:
WriteString(null, (string)valueToEncode);
return;
case BuiltInType.DateTime:
WriteDateTime(null, (DateTime)valueToEncode);
return;
case BuiltInType.Guid:
WriteGuid(null, (Uuid)valueToEncode);
return;
case BuiltInType.ByteString:
WriteByteString(null, (byte[])valueToEncode);
return;
case BuiltInType.XmlElement:
WriteXmlElement(null, (XmlElement)valueToEncode);
return;
case BuiltInType.NodeId:
WriteNodeId(null, (NodeId)valueToEncode);
return;
case BuiltInType.ExpandedNodeId:
WriteExpandedNodeId(null, (ExpandedNodeId)valueToEncode);
return;
case BuiltInType.StatusCode:
WriteStatusCode(null, (StatusCode)valueToEncode);
return;
case BuiltInType.QualifiedName:
WriteQualifiedName(null, (QualifiedName)valueToEncode);
return;
case BuiltInType.LocalizedText:
WriteLocalizedText(null, (LocalizedText)valueToEncode);
return;
case BuiltInType.ExtensionObject:
WriteExtensionObject(null, (ExtensionObject)valueToEncode);
return;
case BuiltInType.DataValue:
WriteDataValue(null, (DataValue)valueToEncode);
return;
case BuiltInType.Enumeration:
WriteEnumerated(null, Convert.ToInt32(valueToEncode,
CultureInfo.InvariantCulture));
return;
//case BuiltInType.DiagnosticInfo:
// WriteDiagnosticInfo((DiagnosticInfo)valueToEncode);
// return;
}
throw new EncodingException(
$"Unexpected type encountered while encoding a Variant: {builtInType}");
}