Module nstd::core::slice

source · []

Structs

Represents a view into a sequence of data.

Functions

Checks if two slices carry the same data. Parameters: const NSTDSlice *const s1 - The first slice. const NSTDSlice *const s2 - The second slice. Returns: NSTDBool is_same - True if the two slices carry the same data.

Checks if a slice contains element. Parameters: const NSTDSlice *const slice - The slice. const NSTDAnyConst element - The element to search for. Returns: NSTDBool is_in - True if the slice contains element.

Copies elements from s2 to s1. The slices must be the same size in bytes. Parameters: NSTDSlice *const s1 - The slice to copy to. const NSTDSlice *const s2 - The slice to copy from.

Counts the number of elements found in slice. Parameters: const NSTDSlice *const slice - The slice. const NSTDAnyConst element - The element to count. Returns: NSTDUSize count - The number of elements in slice.

Checks if a slice ends with another slice. Parameters: const NSTDSlice *const slice - The slice. const NSTDSlice *const pattern - The slice pattern. Returns: NSTDBool ends_with - True if slice ends with pattern.

Fills a slice with element. Parameters: NSTDSlice *const slice - The slice. const NSTDAnyConst element - The element.

Fills a specific range of a slice with element. NOTE: This function does NOT check that range is valid for operating on slice. Parameters: NSTDSlice *const slice - The slice. const NSTDAnyConst element - The element. const NSTDURange *const range - The range of the slice to fill.

Finds the first element in slice and returns the index of the element. Parameters: const NSTDSlice *const slice - The slice. const NSTDAnyConst element - The element to search for. Returns: NSTDUSize index - The index of the element, -1/usize::MAX if not found.

Finds the last element in slice and returns the index of the element. Parameters: const NSTDSlice *const slice - The slice. const NSTDAnyConst element - The element to search for. Returns: NSTDUSize index - The index of the element, -1/usize::MAX if not found.

Gets the first element in the slice. NOTE: This function follows the same behaviour rules as nstd_core_slice_get. Parameters: const NSTDSlice *const slice - The slice. Returns: NSTDAny element - Pointer to the first element.

Gets a pointer to an element from a slice. NOTE: The returned element pointer can quickly become a dangling pointer if the slice’s memory gets reallocated or deallocated, so it is advised to create a copy of the element after getting it. Parameters: const NSTDSlice *const slice - The slice. const NSTDUSize pos - The position of the element to get. Returns: NSTDAny element - Pointer to the element.

Gets the last element in the slice. NOTE: This function follows the same behaviour rules as nstd_core_slice_get. Parameters: const NSTDSlice *const slice - The slice. Returns: NSTDAny element - Pointer to the last element.

Moves bytes from s2 to s1, sets all s2 bytes to 0. Parameters: NSTDSlice *const s1 - The first slice. NSTDSlice *const s2 - The second slice.

Creates a new slice from raw data. Parameters: const NSTDUSize size - Number of elements to slice. const NSTDUSize element_size - Size of each element. const NSTDAny data - Pointer to the raw data. Returns: NSTDSlice slice - The new slice.

Reverses a slice’s elements. Parameters: NSTDSlice *const slice - The slice.

Shifts a slice x times to the left. Parameters: NSTDSlice *const slice - The slice. const NSTDUSize x - Number of times to shift the slice.

Shifts a slice x times to the right. Parameters: NSTDSlice *const slice - The slice. const NSTDUSize x - Number of times to shift the slice.

Checks if a slice starts with another slice. Parameters: const NSTDSlice *const slice - The slice. const NSTDSlice *const pattern - The slice pattern. Returns: NSTDBool starts_with - True if slice starts with pattern.

Swaps two elements in a slice. Parameters: NSTDSlice *const slice - The slice. const NSTDUSize i - The index of the first element. const NSTDUSize j - The index of the second element.

Swaps the elements of s1 and s2. The slices must be the same size in bytes. Parameters: NSTDSlice *const s1 - The first slice. NSTDSlice *const s2 - The second slice.