SemPtr SemPtr
SemPtr SemPtr
Documentation generated with DocFX
Using SingulinkFX as the template

Search Results for

    Struct PointerReadOnly<T>

    Represents a non-nullable transient pointer pointing to a read-only target of type T.

    Implements
    ISpanFormattable
    IFormattable
    IUtf8SpanFormattable
    ITypedPointer<T, PointerReadOnly<T>>
    ITypedPointer<T>
    IPointer<PointerReadOnly<T>>
    IPointer
    IEquatable<PointerReadOnly<T>>
    IEquatable<NullablePointerReadOnly>
    IEquatable<NullablePointerUninitialized>
    IEquatable<NullableFunctionPointer>
    Inherited Members
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: SemPtr
    Assembly: SemPtr.dll
    Syntax
    public readonly ref struct PointerReadOnly<T> : ISpanFormattable, IFormattable, IUtf8SpanFormattable, ITypedPointer<T, PointerReadOnly<T>>, ITypedPointer<T>, IPointer<PointerReadOnly<T>>, IPointer, IEquatable<PointerReadOnly<T>>, IEquatable<NullablePointerReadOnly>, IEquatable<NullablePointerUninitialized>, IEquatable<NullableFunctionPointer> where T : unmanaged, allows ref struct
    Type Parameters
    Name Description
    T

    The type of the target that the pointer points to.

    Remarks

    PointerReadOnly<T> has the following characteristics:

    • Non-nullableYou can access the pointer's target directly without checking for null.
    • TransientThe pointer's target is only valid for the lifetime of the pointer. You cannot let the pointer escape the current scope and you cannot access the pointer's target after the pointer's lifetime ends.
    • Single objectThe pointer points to a single target. You can only access that target directly. You cannot perform pointer arithmetic with the pointer.
    • Read-onlyYou can only read the pointer's target. You cannot modify it.
    • TypedThe pointer points to a single target of type T.

    You should never create instances of PointerReadOnly<T> using its parameterless constructors or default(PointerReadOnly<T>). Doing so will result in undefined behavior. Always use the FromRaw(T*), FromIntPtr(nint), or FromUIntPtr(nuint) methods to create instances of PointerReadOnly<T> pointers.

    Constructors

    Name Description
    PointerReadOnly()

    Do not use. Do not create instances of non-nullable pointers using parameterless constructors or default values.

    Properties

    Name Description
    AsIntPtr

    Gets an nint that represents the same memory address as the current pointer.

    AsUIntPtr

    Gets an nuint that represents the same memory address as the current pointer.

    HasTarget

    Gets a value indicating whether the current pointer is non-null.

    Raw

    Gets a raw pointer pointing to the same target as the current pointer.

    Target

    Gets a read-only reference to the target value the current pointer is pointing to.

    Methods

    Name Description
    Equals(NullableFunctionPointer)

    Indicates whether the current object is equal to another object of the same type.

    Equals(NullablePointerReadOnly)

    Indicates whether the current object is equal to another object of the same type.

    Equals(NullablePointerUninitialized)

    Indicates whether the current object is equal to another object of the same type.

    Equals(PointerReadOnly<T>)

    Indicates whether the current object is equal to another object of the same type.

    Equals(object?)

    Not supported. Do not call this method, use the Equals(PointerReadOnly<T>) method instead.

    FromIntPtr(nint)

    Creates a PointerReadOnly<T> from a memory address given as a nint.

    FromRaw(T*)

    Creates a PointerReadOnly<T> from a raw pointer.

    FromUIntPtr(nuint)

    Creates a PointerReadOnly<T> from a memory address given as a nint.

    GetHashCode()

    Returns the hash code for this instance.

    ToString()

    Formats the value of the current instance using the default format.

    ToString(IFormatProvider?)

    Formats the value of the current instance using the specified format.

    ToString(string?)

    Formats the value of the current instance using the specified format.

    ToString(string?, IFormatProvider?)

    Formats the value of the current instance using the specified format.

    TryFormat(Span<byte>, out int, IFormatProvider?)

    Tries to format the value of the current instance as UTF-8 into the provided span of bytes.

    TryFormat(Span<byte>, out int, ReadOnlySpan<char>, IFormatProvider?)

    Tries to format the value of the current instance as UTF-8 into the provided span of bytes.

    TryFormat(Span<char>, out int, IFormatProvider?)

    Tries to format the value of the current instance into the provided span of characters.

    TryFormat(Span<char>, out int, ReadOnlySpan<char>, IFormatProvider?)

    Tries to format the value of the current instance into the provided span of characters.

    Operators

    Name Description
    operator ==(PointerReadOnly<T>, NullableFunctionPointer)

    Compares two values to determine equality.

    operator ==(PointerReadOnly<T>, NullablePointerReadOnly)

    Compares two values to determine equality.

    operator ==(PointerReadOnly<T>, NullablePointerUninitialized)

    Compares two values to determine equality.

    operator ==(PointerReadOnly<T>, PointerReadOnly<T>)

    Compares two values to determine equality.

    explicit operator PointerReadOnly<T>(FunctionPointer)

    Converts a FunctionPointer to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(PersistentFunctionPointer)

    Converts a PersistentFunctionPointer to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(PersistentPointer)

    Converts a PersistentPointer to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(PersistentPointerReadOnly)

    Converts a PersistentPointerReadOnly to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(PersistentSequencePointer)

    Converts a PersistentSequencePointer to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(PersistentSequencePointerReadOnly)

    Converts a PersistentSequencePointerReadOnly to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(Pointer)

    Converts a Pointer to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(PointerReadOnly)

    Converts a PointerReadOnly to a PointerReadOnly<T>.

    explicit operator FunctionPointer(PointerReadOnly<T>)

    Converts a PointerReadOnly<T> to a FunctionPointer.

    explicit operator NullableFunctionPointer(PointerReadOnly<T>)

    Converts a PointerReadOnly<T> to a NullableFunctionPointer.

    explicit operator PointerReadOnly<T>(SequencePointer)

    Converts a SequencePointer to a PointerReadOnly<T>.

    explicit operator PointerReadOnly<T>(SequencePointerReadOnly)

    Converts a SequencePointerReadOnly to a PointerReadOnly<T>.

    operator false(PointerReadOnly<T>)

    Determines whether the specified pointer is null.

    implicit operator NullablePointerReadOnly(PointerReadOnly<T>)

    Converts a PointerReadOnly<T> to a NullablePointerReadOnly.

    implicit operator NullablePointerReadOnly<T>(PointerReadOnly<T>)

    Converts a PointerReadOnly<T> to a NullablePointerReadOnly<T>.

    implicit operator PointerReadOnly(PointerReadOnly<T>)

    Converts a PointerReadOnly<T> to a PointerReadOnly.

    operator !=(PointerReadOnly<T>, NullableFunctionPointer)

    Compares two values to determine inequality.

    operator !=(PointerReadOnly<T>, NullablePointerReadOnly)

    Compares two values to determine inequality.

    operator !=(PointerReadOnly<T>, NullablePointerUninitialized)

    Compares two values to determine inequality.

    operator !=(PointerReadOnly<T>, PointerReadOnly<T>)

    Compares two values to determine inequality.

    operator true(PointerReadOnly<T>)

    Determines whether the specified pointer is non-null.

    © 2026 Felix Rüdiger. SemPtr and its documentation are licensed under the MIT license.