/// <summary> /// Returns a reference to the 0th element of the ReadOnlySpan. If the Span is empty, returns a reference to the location where the 0th element /// would have been stored. Such a reference can be used for pinning but must never be dereferenced. /// </summary> public static ref T GetReference <T>(ReadOnlySpan <T> span) { if (span.Pinnable == null) { unsafe { return(ref Unsafe.AsRef <T>(span.ByteOffset.ToPointer())); } } else { return(ref Unsafe.AddByteOffset <T>(ref span.Pinnable.Data, span.ByteOffset)); } }
public async Task WriteAsync(Stream stream) { await stream.WriteAsync(Encoding.ASCII.GetBytes(ByteOffset.ToString("D10"))); await stream.WriteAsync(PdfSpec.Space); await stream.WriteAsync(Encoding.ASCII.GetBytes(GenerationNumber.ToString("D5"))); await stream.WriteAsync(PdfSpec.Space); await stream.WriteAsync(Type == XrefEntryType.InUse?PdfSpec.XrefInUse : PdfSpec.XrefFree); await stream.WriteAsync(PdfSpec.Space); await stream.WriteAsync(PdfSpec.NewLine); }
public override byte[] Print() { return(BufferFromString($"{ByteOffset.ToString("#########")} {GenerationNumber.ToString("#####")} {InUseKeyword} {EscapeSequences.CRLF}")); }