Files
DotNetAlpm/Alpm/Backup.cs
2020-04-30 20:42:46 -04:00

40 lines
986 B
C#

using System;
using System.Runtime.InteropServices;
namespace Foodsoft.Alpm
{
public readonly struct Backup : IEquatable<Backup>
{
public string Name { get; }
public string Hash { get; }
public bool Equals(Backup other)
{
return Name == other.Name && Hash == other.Hash;
}
public override bool Equals(object? obj)
{
return obj is Backup other && Equals(other);
}
public override int GetHashCode()
{
return HashCode.Combine(Name, Hash);
}
[StructLayout(LayoutKind.Sequential)]
private readonly unsafe struct NativeBackup
{
internal readonly sbyte* name;
internal readonly sbyte* hash;
}
internal unsafe Backup(IntPtr ptr)
{
var native = (NativeBackup*) ptr;
Name = new string(native->name);
Hash = new string(native->hash);
}
}
}