namespace UglyToad.PdfPig.Core
{
using System.Diagnostics;
///
/// Used to uniquely identify and refer to objects in the PDF file.
///
public struct IndirectReference
{
///
/// A positive integer object number.
///
public long ObjectNumber { get; }
///
/// A non-negative integer generation number which starts as 0 and increases if the file is updated incrementally.
///
public int Generation { get; }
///
/// Create a new
///
/// The object number.
/// The generation number.
[DebuggerStepThrough]
public IndirectReference(long objectNumber, int generation)
{
ObjectNumber = objectNumber;
Generation = generation;
}
///
public override bool Equals(object obj)
{
if (obj is IndirectReference reference)
{
return reference.ObjectNumber == ObjectNumber
&& reference.Generation == Generation;
}
return false;
}
///
public override int GetHashCode()
{
unchecked
{
int hash = 59;
hash = hash * 97 + ObjectNumber.GetHashCode();
hash = hash * 97 + Generation.GetHashCode();
return hash;
}
}
///
public override string ToString()
{
return $"{ObjectNumber} {Generation}";
}
}
}