public bool TryGetNumber(Span <byte> buffer, out double value, out int bytesConsumed) { value = default; bytesConsumed = default; if (!TryDescribeData(buffer, out var type, out var length)) { return(false); } if (type != Amf0Type.Number) { return(false); } value = NetworkBitConverter.ToDouble(buffer.Slice(Amf0CommonValues.MARKER_LENGTH)); bytesConsumed = length; return(true); }
public bool TryGetDate(Span <byte> buffer, out DateTime value, out int consumendLength) { value = default; consumendLength = default; if (!TryDescribeData(buffer, out var type, out var length)) { return(false); } if (type != Amf0Type.Date) { return(false); } var timestamp = NetworkBitConverter.ToDouble(buffer.Slice(Amf0CommonValues.MARKER_LENGTH)); value = DateTimeOffset.FromUnixTimeMilliseconds((long)timestamp).LocalDateTime; consumendLength = length; return(true); }