{"id":"chipioindustries/llama","name":"llama","scope":"chipioindustries","platform":"roblox","description":"Luau Library for Immutable Data","version":"1.3.2","latest":"1.3.2","versions":["1.2.1","1.2.2","1.2.3","1.2.4","1.3.2"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"a873fdb3a511f577f5d3406f8f0c020a5bb2c447cd484bd0b9866c610ce770d8","likes":0,"downloads":0,"install":"forest install chipioindustries/llama","url":"https://forest.dev/p/roblox/chipioindustries/llama","files":"https://api.forest.dev/ai/package/roblox/chipioindustries/llama/files","readme":"This is a fork of Llama that adds a couple of QoL changes, primarily returning the original table passed into `merge` if no mutations occur.\n\n<h1 align=\"center\">📚 Llama 🦙</h1>\n<div align=\"center\">\n\t<a href=\"https://github.com/freddylist/llama/actions\"><img src=\"https://github.com/freddylist/llama/workflows/CI/badge.svg\" alt=\"GitHub Actions Build Status\" /></a>\n\t<a href=\"https://freddylist.github.io/llama\"><img src=\"https://img.shields.io/badge/docs-website-green.svg\" alt=\"Documentation\" /></a>\n</div>\n<div align=\"center\">\n\tLua Library for Immutable Data\n</div>\n\n<div align=\"center\">\n\t<img src=\"docs/img/favicon.ico\" width=256 height=256 alt=\"Llama\"></img>\n</div>\n\n## Installation\n\nThere are a few ways to get started with Llama.\n\n### Method 1: Import model file\n\n1. Download the `.rbxmx` model file from the latest release on the [Llama releases page](https://github.com/F-RDY/llama/releases).\n2. Insert the model anywhere in a Roblox place!\n\n### Method 2: Good ol' copy + paste\n\n1. Copy the `src` directory of Llama into your project.\n2. Rename it to `Llama`.\n3. Make sure you put [`t`](https://github.com/osyrisrblx/t) under the Llama directory. (this step will hopefully be resolved in the future by package managers or Luau type-checking)\n4. Use something like [Rojo](https://github.com/rojo-rbx/rojo) to sync your project to Roblox Studio!\n\n### Method 3: Git submodule\n\n1. Navigate to where you want to keep your submodules in Git bash.\n2. Run `git submodule add https://github.com/F-RDY/llama.git`.\n3. Using something like [Rojo](https://github.com/rojo-rbx/rojo), set up your project to sync `Llama/src` into Roblox Studio!\n\n### Method 4: Package manager\n\n*Coming Soon™*\n\n## Usage\n\n### Basic usage\n\nTo use Llama, simply require it as a module from where you installed it! It is also recommended that you set `Llama.Dictionary`, `Llama.List`, and `Llama.Set` to their own variables; otherwise, you'll be typing a lot!\n\n```lua\n-- Other modules...\nlocal Llama = require(LlamaPath)\n\nlocal Dictionary = Llama.Dictionary\nlocal List = Llama.List\nlocal Set = Llama.Set\n```\n\n### Usage with [Roact](https://github.com/Roblox/roact/) and [Rodux](https://github.com/Roblox/rodux)\n\nRodux requires your state to be immutable, so Llama is a great choice for manipulating it!\n\n```lua\nlocal function reducer(state, action)\n\tif action.type == \"Add\" then\n\t\treturn Dictionary.merge(state, {\n\t\t\tcounter = counter + 1\n\t\t})\n\telseif action.type == \"Subtract\" then\n\t\treturn Dictionary.merge(state, {\n\t\t\tcounter = counter - 1\n\t\t})\n\tend\nend\n```\n\nVisit the [docs](https://freddylist.github.io/llama/) for examples and API reference.\n\n## Special Thanks\n\n- [Mathilde](https://www.instagram.com/httpsugars_/) for the Llama icon\n- [Llama's contributors](https://github.com/freddylist/llama/graphs/contributors)\n\n## What's in a name?\nLlamas are members of the Camelid group of mammals along with alpacas, camels, and dromedaries, which are known for being very stubborn but reliable animals.\n","readmeTruncated":false}