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; hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(StringData); 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); } }