mirror of
https://github.com/aaru-dps/Aaru.CommonTypes.git
synced 2025-12-16 19:24:30 +00:00
Move to file scoped namespaces.
This commit is contained in:
145
Partition.cs
145
Partition.cs
@@ -38,82 +38,81 @@
|
||||
|
||||
using System;
|
||||
|
||||
namespace Aaru.CommonTypes
|
||||
namespace Aaru.CommonTypes;
|
||||
|
||||
/// <summary>Partition structure.</summary>
|
||||
public struct Partition : IEquatable<Partition>, IComparable<Partition>
|
||||
{
|
||||
/// <summary>Partition structure.</summary>
|
||||
public struct Partition : IEquatable<Partition>, IComparable<Partition>
|
||||
/// <summary>Partition number, 0-started</summary>
|
||||
public ulong Sequence;
|
||||
/// <summary>Partition type</summary>
|
||||
public string Type;
|
||||
/// <summary>Partition name (if the scheme supports it)</summary>
|
||||
public string Name;
|
||||
/// <summary>Start of the partition, in bytes</summary>
|
||||
public ulong Offset;
|
||||
/// <summary>LBA of partition start</summary>
|
||||
public ulong Start;
|
||||
/// <summary>Length in bytes of the partition</summary>
|
||||
public ulong Size;
|
||||
/// <summary>Length in sectors of the partition</summary>
|
||||
public ulong Length;
|
||||
/// <summary>Information that does not find space in this struct</summary>
|
||||
public string Description;
|
||||
/// <summary>LBA of last partition sector</summary>
|
||||
public readonly ulong End => Start + Length - 1;
|
||||
/// <summary>Name of partition scheme that contains this partition</summary>
|
||||
public string Scheme;
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Compares two partitions</summary>
|
||||
/// <param name="other">Partition to compare with</param>
|
||||
/// <returns>0 if both partitions start and end at the same sector</returns>
|
||||
public bool Equals(Partition other) => Start == other.Start && Length == other.Length;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override bool Equals(object obj) => obj is Partition partition && Equals(partition);
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
// ReSharper disable once NonReadonlyMemberInGetHashCode
|
||||
public override int GetHashCode() => Start.GetHashCode() + End.GetHashCode();
|
||||
|
||||
/// <summary>
|
||||
/// Compares this partition with another and returns an integer that indicates whether the current partition
|
||||
/// precedes, follows, or is in the same place as the other partition.
|
||||
/// </summary>
|
||||
/// <param name="other">Partition to compare with</param>
|
||||
/// <returns>A value that indicates the relative equality of the partitions being compared.</returns>
|
||||
/// <inheritdoc />
|
||||
public int CompareTo(Partition other)
|
||||
{
|
||||
/// <summary>Partition number, 0-started</summary>
|
||||
public ulong Sequence;
|
||||
/// <summary>Partition type</summary>
|
||||
public string Type;
|
||||
/// <summary>Partition name (if the scheme supports it)</summary>
|
||||
public string Name;
|
||||
/// <summary>Start of the partition, in bytes</summary>
|
||||
public ulong Offset;
|
||||
/// <summary>LBA of partition start</summary>
|
||||
public ulong Start;
|
||||
/// <summary>Length in bytes of the partition</summary>
|
||||
public ulong Size;
|
||||
/// <summary>Length in sectors of the partition</summary>
|
||||
public ulong Length;
|
||||
/// <summary>Information that does not find space in this struct</summary>
|
||||
public string Description;
|
||||
/// <summary>LBA of last partition sector</summary>
|
||||
public readonly ulong End => Start + Length - 1;
|
||||
/// <summary>Name of partition scheme that contains this partition</summary>
|
||||
public string Scheme;
|
||||
if(Start == other.Start &&
|
||||
End == other.End)
|
||||
return 0;
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>Compares two partitions</summary>
|
||||
/// <param name="other">Partition to compare with</param>
|
||||
/// <returns>0 if both partitions start and end at the same sector</returns>
|
||||
public bool Equals(Partition other) => Start == other.Start && Length == other.Length;
|
||||
if(Start > other.Start ||
|
||||
End > other.End)
|
||||
return 1;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override bool Equals(object obj) => obj is Partition partition && Equals(partition);
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
// ReSharper disable once NonReadonlyMemberInGetHashCode
|
||||
public override int GetHashCode() => Start.GetHashCode() + End.GetHashCode();
|
||||
|
||||
/// <summary>
|
||||
/// Compares this partition with another and returns an integer that indicates whether the current partition
|
||||
/// precedes, follows, or is in the same place as the other partition.
|
||||
/// </summary>
|
||||
/// <param name="other">Partition to compare with</param>
|
||||
/// <returns>A value that indicates the relative equality of the partitions being compared.</returns>
|
||||
/// <inheritdoc />
|
||||
public int CompareTo(Partition other)
|
||||
{
|
||||
if(Start == other.Start &&
|
||||
End == other.End)
|
||||
return 0;
|
||||
|
||||
if(Start > other.Start ||
|
||||
End > other.End)
|
||||
return 1;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Define the equality operator.
|
||||
public static bool operator ==(Partition operand1, Partition operand2) => operand1.Equals(operand2);
|
||||
|
||||
// Define the inequality operator.
|
||||
public static bool operator !=(Partition operand1, Partition operand2) => !operand1.Equals(operand2);
|
||||
|
||||
// Define the is greater than operator.
|
||||
public static bool operator >(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) == 1;
|
||||
|
||||
// Define the is less than operator.
|
||||
public static bool operator <(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) == -1;
|
||||
|
||||
// Define the is greater than or equal to operator.
|
||||
public static bool operator >=(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) >= 0;
|
||||
|
||||
// Define the is less than or equal to operator.
|
||||
public static bool operator <=(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) <= 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Define the equality operator.
|
||||
public static bool operator ==(Partition operand1, Partition operand2) => operand1.Equals(operand2);
|
||||
|
||||
// Define the inequality operator.
|
||||
public static bool operator !=(Partition operand1, Partition operand2) => !operand1.Equals(operand2);
|
||||
|
||||
// Define the is greater than operator.
|
||||
public static bool operator >(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) == 1;
|
||||
|
||||
// Define the is less than operator.
|
||||
public static bool operator <(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) == -1;
|
||||
|
||||
// Define the is greater than or equal to operator.
|
||||
public static bool operator >=(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) >= 0;
|
||||
|
||||
// Define the is less than or equal to operator.
|
||||
public static bool operator <=(Partition operand1, Partition operand2) => operand1.CompareTo(operand2) <= 0;
|
||||
}
|
||||
Reference in New Issue
Block a user