SimulationTree.Types.Core
0.3.4
Prefix Reserved
See the version list below for details.
dotnet add package SimulationTree.Types.Core --version 0.3.4
NuGet\Install-Package SimulationTree.Types.Core -Version 0.3.4
<PackageReference Include="SimulationTree.Types.Core" Version="0.3.4" />
<PackageVersion Include="SimulationTree.Types.Core" Version="0.3.4" />
<PackageReference Include="SimulationTree.Types.Core" />
paket add SimulationTree.Types.Core --version 0.3.4
#r "nuget: SimulationTree.Types.Core, 0.3.4"
#:package SimulationTree.Types.Core@0.3.4
#addin nuget:?package=SimulationTree.Types.Core&version=0.3.4
#tool nuget:?package=SimulationTree.Types.Core&version=0.3.4
Types
Assists programming with value types in C#.
Initializing
Before types are interacted/accessed, the MetadataRegistry must be initialized
by registering the types and interfaces in use:
Type layouts
These store metadata about what fields are found on a type:
namespace Example
{
public struct Apple
{
public byte first;
public ushort second;
public Item item;
}
public struct Item
{
public uint id;
}
}
TypeMetadata type = TypeMetadata.Get<Apple>();
Assert.That(type.FullName.ToString(), Is.EqualTo("Example.Apple"));
Assert.That(type.Size, Is.EqualTo(7));
ReadOnlySpan<Field> fields = type.Fields;
Assert.That(fields.Length, Is.EqualTo(3));
Assert.That(fields[0].Name.ToString(), Is.EqualTo("first"));
Assert.That(fields[1].Name.ToString(), Is.EqualTo("second"));
Assert.That(fields[2].Name.ToString(), Is.EqualTo("item"));
Assert.That(fields[2].type, Is.EqualTo(TypeMetadata.Get<Item>()));
Type banks
Type banks are generated for every project that references this library. They contain code that registers declared types:
MetadataRegistry.Load<CustomTypeBank>();
public readonly struct CustomTypeBank : ITypeBank
{
void ITypeBank.Load(Register register)
{
register.Invoke<DateTime>();
}
}
Type registry loaders
These are also generated like type banks. But differ in that they're only
generated for projects with an entry point (a static void Main() method).
They load all type banks found in the project:
TypeRegistryLoader.Load();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on SimulationTree.Types.Core:
| Package | Downloads |
|---|---|
|
SimulationTree.Worlds.Core
Native ECS library |
|
|
SimulationTree.Types
Assists programming with value types |
|
|
SimulationTree.Simulation.Core
Faciliates event based systems. |
|
|
SimulationTree.Shapes
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.