Funtom.span
0.0.4
See the version list below for details.
dotnet add package Funtom.span --version 0.0.4
NuGet\Install-Package Funtom.span -Version 0.0.4
<PackageReference Include="Funtom.span" Version="0.0.4" />
paket add Funtom.span --version 0.0.4
#r "nuget: Funtom.span, 0.0.4"
// Install Funtom.span as a Cake Addin #addin nuget:?package=Funtom.span&version=0.0.4 // Install Funtom.span as a Cake Tool #tool nuget:?package=Funtom.span&version=0.0.4
Funtom.span
🔷 What's this?
Funtom.span is a library that provides functions related to memory allocation.
🔷 How to use?
1️⃣ Memory module
Memory.stackalloc<'a> size
: int → nativeptr<'a>
Allocates a region of memory on the stack.
let span: nativeptr<char> = Memory.stackalloc<char> 256
Memory.stackalloca<'a> size
: int → Span<'a>
Allocates a region of memory on the stack and returns value as Span<'a>.
let span: Span<char> = Memory.stackalloca<char> 256
Memory.alloc<'a> size
: int → Span<'a>
Allocates a memory area on the stack or heap according to the specified size and returns the value as Span<'a>. The threshold can be changed under Memory.threshold.
Memory.threshold <- 256
let span: Span<char> = Memory.alloc<char> 256
Memory.ref<'a> span
: Span<'a> → byref<'a>
Returns a reference to the element of the span at index 0.
let span: Span<char> = Memory.stackalloca<char> 256
let r: byref<char> = Memory.ref span
Memory.rent<'a> size
: int → array<'a>
Retrieves a buffer that is at least the requested length.
let buf: array<char> = Memory.rent<char> 256
Memory.returns<'a> buffer
: array<'a> → unit
Returns an array to the pool that was previously obtained using the Memory.rent<'a> method on the same System.Buffers.ArrayPool instance.
let buf: array<char> = Memory.rent<char> 256
Memory.returns buf
2️⃣ SpanExtensions
This extension to allow Span<'a> to be F# sliced.
let span: Span<char> = Memory.stackalloca<char> 256
let sliced: Span<char> = span[..128]
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- FSharp.Core (>= 7.0.200)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.