Skip to content

Commit

Permalink
Add DisposeHelper back
Browse files Browse the repository at this point in the history
  • Loading branch information
sunnamed434 committed Jul 10, 2023
1 parent d4523f0 commit 6c9913b
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
57 changes: 57 additions & 0 deletions src/RocketPluginHelper/Helpers/DisposeHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
namespace RocketPluginHelper.Helpers;

[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
[SuppressMessage("ReSharper", "ConvertIfStatementToSwitchStatement")]
public static class DisposeHelper
{
public static async Task DisposeAllAsync(this IEnumerable<object> objects)
{
foreach (var @object in objects)
{
if (@object is IAsyncDisposable asyncDisposable)
{
await asyncDisposable.DisposeAsync();
}
else if (@object is IDisposable disposable)
{
disposable.Dispose();
}
}
}
public static async Task DisposeAllAsync(this List<object> objects)
{
for (var i = 0; i < objects.Count; i++)
{
var @object = objects[i];
if (@object is IAsyncDisposable asyncDisposable)
{
await asyncDisposable.DisposeAsync();
}
else if (@object is IDisposable disposable)
{
disposable.Dispose();
}
}
}
public static void DisposeAll(this IEnumerable<object> objects)
{
foreach (var @object in objects)
{
if (@object is IDisposable disposable)
{
disposable.Dispose();
}
}
}
public static async Task DisposeSyncOrAsync(this object o)
{
if (o is IAsyncDisposable asyncDisposable)
{
await asyncDisposable.DisposeAsync();
}
else if (o is IDisposable disposable)
{
disposable.Dispose();
}
}
}
1 change: 1 addition & 0 deletions src/RocketPluginHelper/RocketPluginHelper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

<ItemGroup>
<PackageReference Include="Nito.AsyncEx.Context" Version="5.1.2"/>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.24"/>
<PackageReference Include="RocketMod.Modern.Dependencies" Version="1.1.2.5" PrivateAssets="true"/>
<PackageReference Include="OpenMod.UniTask" Version="*">
<IncludeAssets>compile</IncludeAssets>
Expand Down

0 comments on commit 6c9913b

Please sign in to comment.