BlobExpiryOptions
The BlobExpiryOptions.
using System;
using System.ComponentModel;
namespace Azure.Storage.Blobs.Models
{
internal readonly struct BlobExpiryOptions : IEquatable<BlobExpiryOptions>
{
private readonly string _value;
private const string NeverExpireValue = "NeverExpire";
private const string RelativeToCreationValue = "RelativeToCreation";
private const string RelativeToNowValue = "RelativeToNow";
private const string AbsoluteValue = "Absolute";
public static BlobExpiryOptions NeverExpire { get; } = new BlobExpiryOptions("NeverExpire");
public static BlobExpiryOptions RelativeToCreation { get; } = new BlobExpiryOptions("RelativeToCreation");
public static BlobExpiryOptions RelativeToNow { get; } = new BlobExpiryOptions("RelativeToNow");
public static BlobExpiryOptions Absolute { get; } = new BlobExpiryOptions("Absolute");
public BlobExpiryOptions(string value)
{
if (value == null)
throw new ArgumentNullException("value");
_value = value;
}
public static bool operator ==(BlobExpiryOptions left, BlobExpiryOptions right)
{
return left.Equals(right);
}
public static bool operator !=(BlobExpiryOptions left, BlobExpiryOptions right)
{
return !left.Equals(right);
}
public static implicit operator BlobExpiryOptions(string value)
{
return new BlobExpiryOptions(value);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object obj)
{
if (obj is BlobExpiryOptions) {
BlobExpiryOptions other = (BlobExpiryOptions)obj;
return Equals(other);
}
return false;
}
public bool Equals(BlobExpiryOptions other)
{
return string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode()
{
if (_value == null)
return 0;
return StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value);
}
public override string ToString()
{
return _value;
}
}
}