59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
namespace FrostFS.SDK.Client;
|
|
|
|
public readonly struct PrmObjectSearch(
|
|
FrostFsContainerId containerId,
|
|
FrostFsSessionToken? token,
|
|
string[]? xheaders = null,
|
|
params IObjectFilter[] filters) : ISessionToken, System.IEquatable<PrmObjectSearch>
|
|
{
|
|
/// <summary>
|
|
/// Defines container for the search
|
|
/// </summary>
|
|
/// <value></value>
|
|
public FrostFsContainerId ContainerId { get; } = containerId;
|
|
|
|
/// <summary>
|
|
/// Defines the search criteria
|
|
/// </summary>
|
|
/// <value>Collection of filters</value>
|
|
public IObjectFilter[] Filters { get; } = filters;
|
|
|
|
/// <inheritdoc />
|
|
public FrostFsSessionToken? SessionToken { get; } = token;
|
|
|
|
/// <summary>
|
|
/// FrostFS request X-Headers
|
|
/// </summary>
|
|
public string[] XHeaders { get; } = xheaders ?? [];
|
|
|
|
public override readonly bool Equals(object obj)
|
|
{
|
|
if (obj == null || obj is not PrmObjectSearch)
|
|
return false;
|
|
|
|
return Equals((PrmObjectSearch)obj);
|
|
}
|
|
|
|
public readonly bool Equals(PrmObjectSearch other)
|
|
{
|
|
return GetHashCode() == other.GetHashCode();
|
|
}
|
|
|
|
public override readonly int GetHashCode()
|
|
{
|
|
return ContainerId.GetHashCode()
|
|
^ Filters.GetHashCode()
|
|
^ (SessionToken == null ? 0 : SessionToken.GetHashCode())
|
|
^ XHeaders.GetHashCode();
|
|
}
|
|
|
|
public static bool operator ==(PrmObjectSearch left, PrmObjectSearch right)
|
|
{
|
|
return left.Equals(right);
|
|
}
|
|
|
|
public static bool operator !=(PrmObjectSearch left, PrmObjectSearch right)
|
|
{
|
|
return !(left == right);
|
|
}
|
|
}
|