PupaLib.Data
0.1.1
dotnet add package PupaLib.Data --version 0.1.1
NuGet\Install-Package PupaLib.Data -Version 0.1.1
<PackageReference Include="PupaLib.Data" Version="0.1.1" />
<PackageVersion Include="PupaLib.Data" Version="0.1.1" />
<PackageReference Include="PupaLib.Data" />
paket add PupaLib.Data --version 0.1.1
#r "nuget: PupaLib.Data, 0.1.1"
#:package PupaLib.Data@0.1.1
#addin nuget:?package=PupaLib.Data&version=0.1.1
#tool nuget:?package=PupaLib.Data&version=0.1.1
<div align="center">
๐๏ธ PupaLib.Data
PupaLib.Data is a lightweight recursive key-value storage with path-based access. ๐ฏ
<img src="https://github.com/Artpupser/PupaLib.Data/blob/main/assets/banner.jpg" style="border-radius: 20px; max-height: 500px">
</div>
๐ Navigation
โจ๏ธ Features
<div align="center">
| ๐ Feature | ๐ Description |
| ----------------------- | ---------------------------------------------------------- |
| Recursive Structure | Tree-like data storage with nested nodes (Childs) |
| Path-based Access | Access data via dot-separated paths (player.stats.hp) |
| Thread-safe | Built on ConcurrentDictionary |
| Deep Operations | DeepSet, DeepGet, DeepExists* for nested access |
| Auto Node Creation | Nodes are created automatically during deep set operations |
| Type Safety Checks | Validate types with ExistsWithType<T> |
| Debug Visualization | Built-in ToString() for readable tree output |
</div>
๐ Installation
You can install the package through the NuGet Package Manager or via the command line
dotnet add package PupaLib.Data
Or through the NuGet Package Manager
Install-Package PupaLib.Data
๐งต Usage
๐ Create instance
var data = new RecursionData();
๐ Set values
// Simple set
data.Set("score", 100);
// Deep set (auto-creates structure)
data.DeepSet("player.stats.hp", 250);
data.DeepSet("player.stats.mana", 75);
๐ Get values
int score = data.Get<int>("score");
int hp = data.DeepGet<int>("player.stats.hp");
๐ Check existence
bool exists = data.ExistsAny("score");
bool deepExists = data.DeepExistsAny("player.stats.hp");
bool typed = data.ExistsWithType<int>("score");
bool deepTyped = data.DeepExistsWithType<int>("player.stats.hp");
๐ Debug output
Console.WriteLine(data);
Example output:
[score] -> 100
/player
/stats
[hp] -> 250
[mana] -> 75
๐ Path separator
RecursionData.SeparateSymbol = '.';
Default separator is .
๐ฆ Dependencies
None
๐๏ธ Devlog
0.1.0
- Initial implementation of
RecursionData - Path-based access using
.separator - Thread-safe storage via
ConcurrentDictionary - Core API:
Set,Get,Exists,Deep*
โ๏ธ License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.