BlobBlock
Represents a single block in a block blob. It describes the block's ID and size.
using Azure.Core;
using Azure.Storage.Common;
using System;
using System.ComponentModel;
using System.Xml.Linq;
namespace Azure.Storage.Blobs.Models
{
[CodeGenModel("Block")]
public readonly struct BlobBlock : IEquatable<BlobBlock>
{
[CodeGenMember("Size")]
public long SizeLong { get; }
[EditorBrowsable(EditorBrowsableState.Never)]
public int Size {
get {
return checked((int)SizeLong);
}
}
[CodeGenMember("Name")]
public string Name { get; }
internal BlobBlock(string name, long sizeLong)
{
Argument.AssertNotNull(name, "name");
Name = name;
SizeLong = sizeLong;
}
internal static BlobBlock DeserializeBlobBlock(XElement element)
{
string name = null;
long sizeLong = 0;
XElement xElement = element.Element("Name");
if (xElement != null)
name = (string)xElement;
XElement xElement2 = element.Element("Size");
if (xElement2 != null)
sizeLong = (long)xElement2;
return new BlobBlock(name, sizeLong);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public bool Equals(BlobBlock other)
{
if (!StringComparer.Ordinal.Equals(Name, other.Name))
return false;
if (!Size.Equals(other.Size))
return false;
return true;
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object obj)
{
if (obj is BlobBlock)
return Equals((BlobBlock)obj);
return false;
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode()
{
HashCodeBuilder hashCodeBuilder = default(HashCodeBuilder);
if (Name != null)
hashCodeBuilder.Add(Name, StringComparer.Ordinal);
hashCodeBuilder.Add(Size);
return hashCodeBuilder.ToHashCode();
}
}
}