wabbajack/Wabbajack.Paths.IO/TemporaryPath.cs

35 lines
631 B
C#
Raw Permalink Normal View History

2021-09-27 12:42:46 +00:00
using System;
using System.Threading.Tasks;
2021-10-23 16:51:17 +00:00
namespace Wabbajack.Paths.IO;
public struct TemporaryPath : IDisposable, IAsyncDisposable
2021-09-27 12:42:46 +00:00
{
2021-10-23 16:51:17 +00:00
public readonly AbsolutePath Path { get; init; }
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public TemporaryPath(AbsolutePath path)
{
Path = path;
}
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public void Dispose()
{
Path.Delete();
}
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public override string ToString()
{
return Path.ToString();
}
2021-09-27 12:42:46 +00:00
2021-10-23 16:51:17 +00:00
public static implicit operator AbsolutePath(TemporaryPath tp)
{
return tp.Path;
}
2021-09-27 12:42:46 +00:00
2022-10-07 21:02:16 +00:00
public ValueTask DisposeAsync()
2021-10-23 16:51:17 +00:00
{
Path.Delete();
2022-10-07 21:02:16 +00:00
return ValueTask.CompletedTask;
2021-09-27 12:42:46 +00:00
}
}