@bya2/rusty-container-api
v1.3.1
Published
Use rust-like optional and error-handling types API.
Downloads
9
Readme
Rusty Container API
Use rust-like optional and error-handling types API.
Some methods are missing because necessity and language specifics.
Table of Contents
Features
- Rust-like
Option
andResult
types - Optional type handling
- Error handling
- Transformable variants
Promise
Transformable
Usage
The code below needs to be written as needed.
아래의 코드는 필요시 직접 작성하세요.
Installation
$ pnpm add @bya2/rusty-container-api
Declaring types globally
This code can cause type conflicts, so you'll need to create and insert your own .d.ts
file.
export declare global {
type Option<T> = import("@bya2/rusty-container-api").Option<T>;
function Some<T>(expr: T): Option<T>;
const None: Option<any>; // or const None<T>: Option<T>
type Result<T, E> = import("@bya2/rusty-container-api").Result<T, E>;
function Ok<T, E>(expr: T): Result<T, E>;
function Err<T, E>(expr: E): Result<T, E>;
}
Initializing variants
And write that code in your setup file(.js
), then import it at the top of your entry point.
import { defineOption, defineResult } from "@bya2/rusty-container-api";
defineOption(); // optional
defineResult(); // optional
Defining types
const a = Some(1) // Option<number>;
const b = None // Option<any>;
const c: Option<number> = None;
const d = Ok(1); // Result<number, unknown>
const e = Err("a"); // Result<unknown, string>
const f: Result<number, Error> = Ok(1);
const g = Err<number, Error>(new Error());
API
Option
Result
Custom Methods
Option Interface
- [x] resolveOr
- [x] resolveOrElse
- [x] transposeAsync
- [x] equal
Result Interface
- [x] promise
- [x] transposeAsync
- [x] equal