Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<PropertyGroup>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<VersionPrefix>0.19.1</VersionPrefix>
<VersionPrefix>0.20.0</VersionPrefix>
<DeterministicSourcePaths Condition="'$(Configuration)' == 'Release'">true</DeterministicSourcePaths>
</PropertyGroup>
</Project>
1 change: 0 additions & 1 deletion src/Tmds.DBus.Protocol/Dict.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ public static implicit operator Variant(Dict<TKey, TValue> value)
void IDBusWritable.WriteTo(ref MessageWriter writer)
=> writer.WriteDictionary<TKey, TValue>(_dict);


ICollection<TKey> IDictionary<TKey, TValue>.Keys => _dict.Keys;

ICollection<TValue> IDictionary<TKey, TValue>.Values => _dict.Values;
Expand Down
14 changes: 0 additions & 14 deletions src/Tmds.DBus.Protocol/Feature.cs

This file was deleted.

49 changes: 3 additions & 46 deletions src/Tmds.DBus.Protocol/MessageWriter.Array.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,8 @@ public void WriteArray(ReadOnlySpan<SafeHandle> value)
public void WriteArray(IEnumerable<SafeHandle> value)
=> WriteArrayOfT(value);

[RequiresUnreferencedCode(Strings.UseNonGenericWriteArray)]
[Obsolete(Strings.UseNonGenericWriteArrayObsolete)]
public void WriteArray<T>(IEnumerable<T> value)
#if !NET5_0_OR_GREATER
internal void WriteArray<T>(IEnumerable<T> value)
where T : notnull
{
ArrayStart arrayStart = WriteArrayStart(TypeModel.GetTypeAlignment<T>());
Expand All @@ -131,6 +130,7 @@ public void WriteArray<T>(IEnumerable<T> value)
}
WriteArrayEnd(arrayStart);
}
#endif

internal void WriteArray<T>(ReadOnlySpan<T> value)
where T : notnull
Expand Down Expand Up @@ -183,49 +183,6 @@ internal void WriteArray<T>(ReadOnlySpan<T> value)
}
}

[RequiresUnreferencedCode(Strings.UseNonGenericWriteArray)]
[Obsolete(Strings.UseNonGenericWriteArrayObsolete)]
public void WriteArray<T>(T[] value)
where T : notnull
{
if (typeof(T) == typeof(byte))
{
WriteArray((byte[])(object)value);
}
else if (typeof(T) == typeof(short))
{
WriteArray((short[])(object)value);
}
else if (typeof(T) == typeof(ushort))
{
WriteArray((ushort[])(object)value);
}
else if (typeof(T) == typeof(int))
{
WriteArray((int[])(object)value);
}
else if (typeof(T) == typeof(uint))
{
WriteArray((uint[])(object)value);
}
else if (typeof(T) == typeof(long))
{
WriteArray((long[])(object)value);
}
else if (typeof(T) == typeof(ulong))
{
WriteArray((ulong[])(object)value);
}
else if (typeof(T) == typeof(double))
{
WriteArray((double[])(object)value);
}
else
{
WriteArrayOfT<T>(value.AsSpan());
}
}

private unsafe void WriteArrayOfNumeric<T>(ReadOnlySpan<T> value) where T : unmanaged
{
WriteInt32(value.Length * sizeof(T));
Expand Down
61 changes: 3 additions & 58 deletions src/Tmds.DBus.Protocol/MessageWriter.Dictionary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ public void WriteDictionary(KeyValuePair<string, Variant>[] value)
public void WriteDictionary(Dictionary<string, Variant> value)
=> WriteDictionary<string, Variant>(value);

[RequiresUnreferencedCode(Strings.UseNonGenericWriteDictionary)]
[Obsolete(Strings.UseNonGenericWriteDictionaryObsolete)]
public void WriteDictionary<TKey, TValue>(IEnumerable<KeyValuePair<TKey, TValue>> value)
private void WriteDictionary<TKey, TValue>(IEnumerable<KeyValuePair<TKey, TValue>> value)
where TKey : notnull
where TValue : notnull
{
Expand All @@ -45,9 +43,7 @@ public void WriteDictionary<TKey, TValue>(IEnumerable<KeyValuePair<TKey, TValue>
WriteDictionaryEnd(arrayStart);
}

[RequiresUnreferencedCode(Strings.UseNonGenericWriteDictionary)]
[Obsolete(Strings.UseNonGenericWriteDictionaryObsolete)]
public void WriteDictionary<TKey, TValue>(KeyValuePair<TKey, TValue>[] value)
private void WriteDictionary<TKey, TValue>(KeyValuePair<TKey, TValue>[] value)
where TKey : notnull
where TValue : notnull
{
Expand All @@ -61,9 +57,7 @@ public void WriteDictionary<TKey, TValue>(KeyValuePair<TKey, TValue>[] value)
WriteDictionaryEnd(arrayStart);
}

[RequiresUnreferencedCode(Strings.UseNonGenericWriteDictionary)]
[Obsolete(Strings.UseNonGenericWriteDictionaryObsolete)]
public void WriteDictionary<TKey, TValue>(Dictionary<TKey, TValue> value)
internal void WriteDictionary<TKey, TValue>(Dictionary<TKey, TValue> value)
where TKey : notnull
where TValue : notnull
{
Expand All @@ -76,53 +70,4 @@ public void WriteDictionary<TKey, TValue>(Dictionary<TKey, TValue> value)
}
WriteDictionaryEnd(arrayStart);
}

[RequiresUnreferencedCode(Strings.UseNonGenericWriteVariantDictionary)]
[Obsolete(Strings.UseNonGenericWriteVariantDictionaryObsolete)]
public void WriteVariantDictionary<TKey, TValue>(IEnumerable<KeyValuePair<TKey, TValue>> value)
where TKey : notnull
where TValue : notnull
{
WriteDictionarySignature<TKey, TValue>(ref this);
WriteDictionary(value);
}

[RequiresUnreferencedCode(Strings.UseNonGenericWriteVariantDictionary)]
[Obsolete(Strings.UseNonGenericWriteVariantDictionaryObsolete)]
public void WriteVariantDictionary<TKey, TValue>(KeyValuePair<TKey, TValue>[] value)
where TKey : notnull
where TValue : notnull
{
WriteDictionarySignature<TKey, TValue>(ref this);
WriteDictionary(value);
}

[RequiresUnreferencedCode(Strings.UseNonGenericWriteVariantDictionary)]
[Obsolete(Strings.UseNonGenericWriteVariantDictionaryObsolete)]
public void WriteVariantDictionary<TKey, TValue>(Dictionary<TKey, TValue> value)
where TKey : notnull
where TValue : notnull
{
WriteDictionarySignature<TKey, TValue>(ref this);
WriteDictionary(value);
}

// This method writes a Dictionary without using generics at the 'cost' of boxing.
// private void WriteDictionary(IDictionary value)
// {
// ArrayStart arrayStart = WriteDictionaryStart();
// foreach (System.Collections.DictionaryEntry de in dictionary)
// {
// WriteDictionaryEntryStart();
// Write(de.Key, asVariant: keyType == typeof(object));
// Write(de.Value, asVariant: valueType == typeof(object));
// }
// WriteDictionaryEnd(ref arrayStart);
// }

private static void WriteDictionarySignature<TKey, TValue>(ref MessageWriter writer) where TKey : notnull where TValue : notnull
{
Span<byte> buffer = stackalloc byte[ProtocolConstants.MaxSignatureLength];
writer.WriteSignature(TypeModel.GetSignature<Dict<TKey, TValue>>(buffer));
}
}
Loading