Unclaimed Package Is this your package? Claim it to unlock full analytics and manage your listing.
Claim This Package

Install via UPM

Add to Unity Package Manager using this URL

https://www.pkglnk.dev/option.git

README Markdown

Copy this to your project's README.md

Style
Preview
pkglnk installs badge
## Installation

Add **Option for unity** to your Unity project via Package Manager:

1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/option.git
```

[![pkglnk](https://www.pkglnk.dev/badge/option.svg?style=pkglnk)](https://www.pkglnk.dev/pkg/option)

README

Option

Option to replace Nullable as in functional programming for Unity.

Table of Contens

Install

Via Git

add "com.corby.option": "https://github.com/CorbyO/Option.git" to Packages/manifest.json.

Via OpenUPM

openupm add com.corby.option

Getting started

Initialize

Option<int> num = new(); // None<int>
Option<int> num = 3.ToSome(); // Some<>(3)
Option<Transform> parent = transform.parent.ToOption(); // Some<> or None 

Return without null

public static Option<Transform> GetParent<T>(this Transform transform)
{
    return transform.parent.ToOption();
}

Unwarpping

var parentName = transform.GetParent().Unwrap() switch
{
    Some<Transform> parent => parent.name,
    None<Transform> => "None"
};

Serialization

image

This is a simple example of how to serialize a class or struct that contains Option.

[Serializable]
public struct TestStruct
{
    public Option<int> Number;
    public Option<string> Name;
    public Option<Vector3> Position;
}

[Serializable]
public class TestClass
{
    public Option<Sprite> Sprite;
    public Option<List<int>> Numbers;
}


public class TestComponent : MonoBehaviour
{
    public Option<TestStruct> Struct;
    public Option<TestClass> Class;
}

Comments

No comments yet. Be the first!