Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

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;
}

About

Option to replace Nullable as in functional programming for Unity.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /