using System; using System.Collections.Generic; namespace Umbraco.Cms.Infrastructure.PublishedCache.DataSource { /// /// The serialization result from for which the serialized value /// will be either a string or a byte[] /// public struct ContentCacheDataSerializationResult : IEquatable { public ContentCacheDataSerializationResult(string? stringData, byte[]? byteData) { StringData = stringData; ByteData = byteData; } public string? StringData { get; } public byte[]? ByteData { get; } public override bool Equals(object? obj) => obj is ContentCacheDataSerializationResult result && Equals(result); public bool Equals(ContentCacheDataSerializationResult other) => StringData == other.StringData && EqualityComparer.Default.Equals(ByteData, other.ByteData); public override int GetHashCode() { var hashCode = 1910544615; if (StringData is not null) { hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(StringData); } if (ByteData is not null) { hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(ByteData); } return hashCode; } public static bool operator ==(ContentCacheDataSerializationResult left, ContentCacheDataSerializationResult right) => left.Equals(right); public static bool operator !=(ContentCacheDataSerializationResult left, ContentCacheDataSerializationResult right) => !(left == right); } }