Skip to main content

struct

Span

A non owning view of contiguous data.

Parameters

  • T (CollectionElement): The type of the elements in the span.
  • is_mutable (Bool): Whether the span is mutable.
  • lifetime (lifetime<#lit.struct.extract<:_stdlib::_builtin::_bool::_Bool is_mutable, "value">>): The lifetime of the Span.

Implemented traits

AnyType, Copyable, Movable, Sized

Methods

__init__

__init__(inout self: Self, *, unsafe_ptr: UnsafePointer[T, 0], len: Int)

Unsafe construction from a pointer and length.

Args:

  • unsafe_ptr (UnsafePointer[T, 0]): The underlying pointer of the span.
  • len (Int): The length of the view.

__init__(inout self: Self, list: Reference[List[T], is_mutable, lifetime, 0])

Construct a Span from a List.

Args:

  • list (Reference[List[T], is_mutable, lifetime, 0]): The list to which the span refers.

__init__[size: Int](inout self: Self, array: Reference[InlineArray[T, size], is_mutable, lifetime, 0])

Construct a Span from an InlineArray.

Parameters:

  • size (Int): The size of the InlineArray.

Args:

  • array (Reference[InlineArray[T, size], is_mutable, lifetime, 0]): The array to which the span refers.

__getitem__

__getitem__(self: Self, idx: Int) -> ref [lifetime] T

Get a reference to an element in the span.

Args:

  • idx (Int): The index of the value to return.

Returns:

An element reference.

__getitem__(self: Self, slc: Slice) -> Self

Get a new span from a slice of the current span.

Args:

  • slc (Slice): The slice specifying the range of the new subslice.

Returns:

A new span that points to the same data as the current span.

unsafe_ptr

unsafe_ptr(self: Self) -> UnsafePointer[T, 0]

Gets a pointer to the first element of this slice.

Returns:

A pointer pointing at the first element of this slice.