protected virtual void WriteScalar()

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}");
        }