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}"; } } }