First release
This commit is contained in:
commit
fa6c85266e
2339 changed files with 761050 additions and 0 deletions
120
node_modules/rust-result/README.md
generated
vendored
Normal file
120
node_modules/rust-result/README.md
generated
vendored
Normal file
|
@ -0,0 +1,120 @@
|
|||
# rust-result.js
|
||||
|
||||
Mimic Rust's [`std::result`][result].
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
npm install rust-result
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
var fs = require('fs');
|
||||
var Result = require('./');
|
||||
|
||||
|
||||
// If you want async just get a promise or something.
|
||||
var readFile = function (path, encoding) {
|
||||
try {
|
||||
return Result.Ok(fs.readFileSync(path, encoding))
|
||||
}
|
||||
catch (ex) {
|
||||
return Result.Err(ex)
|
||||
}
|
||||
}
|
||||
|
||||
var result = readFile(__filename);
|
||||
var v, err;
|
||||
|
||||
if (Result.isOk(result)) {
|
||||
v = Result.Ok(result);
|
||||
console.log('got ' + v.length + ' bytes')
|
||||
}
|
||||
else if (Result.isErr(result)) {
|
||||
err = Result.Err(result);
|
||||
console.error('oops!', err.message)
|
||||
}
|
||||
|
||||
result = readFile(__filename + 'I do not exist')
|
||||
if (Result.isOk(result)) {
|
||||
v = Result.Ok(result)
|
||||
console.log('got ' + v.length + ' bytes')
|
||||
}
|
||||
else if (Result.isErr(result)) {
|
||||
err = Result.Err(result)
|
||||
console.error('oops!', err.message)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
```jsig
|
||||
type OkResult<T> : {
|
||||
v: T
|
||||
}
|
||||
type ErrResult<E <: Error> : {
|
||||
err: E
|
||||
}
|
||||
|
||||
rust-result : {
|
||||
Ok: ((T) => OkResult<T>) |
|
||||
((OkResult<T>) => T) |
|
||||
((ErrResult<E>) => void),
|
||||
isOk: ((OkResult<T>) => true) |
|
||||
((ErrResult<E>) => false)
|
||||
Err: ((E <: Error) => ErrResult<E>) |
|
||||
((ErrResult<E>) => E) |
|
||||
((OkResult<T>) => void),
|
||||
isErr: ((ErrResult<E>) => true) |
|
||||
((OkResult<T>) => false)
|
||||
}
|
||||
```
|
||||
|
||||
### `Result.Ok`
|
||||
|
||||
The `Result.Ok` function is overloaded to do one of two things.
|
||||
It can create a new `Ok` instance or it can check whether
|
||||
the argument is an instance of `Ok`
|
||||
|
||||
If you call `Result.Ok` with a plain value it will return an
|
||||
instance of `Ok` that boxes your plain value.
|
||||
|
||||
If you call `Result.Ok` with either an `Err` or an `Ok` instance
|
||||
then it will return `undefined` for the `Err` and return the
|
||||
value boxed in the `Ok`
|
||||
|
||||
### `Result.isOk`
|
||||
|
||||
The `Result.isOk` function just checks whether the argument
|
||||
is an instance of `Ok`.
|
||||
|
||||
This predicate function returns true if you pass it an `Ok` and
|
||||
returns false if you pass it an `Err`
|
||||
|
||||
### `Result.Err`
|
||||
|
||||
The `Result.Err` function is overloaded to do one of two things.
|
||||
It can create a new `Err` instance or it can check whether
|
||||
the argument is an instance of `Err`
|
||||
|
||||
If you call `Result.Err` with a plain error it will return an
|
||||
instance of `Err` that boxes your plain error.
|
||||
|
||||
If you call `Result.Err` with either an `Err` or an `Ok` instance
|
||||
then it will return `undefined` for the `Ok` and return the
|
||||
value err in the `Err`
|
||||
|
||||
### `Result.isErr`
|
||||
|
||||
The `Result.isErr` function just checks whether the argument
|
||||
is an instance of `Err`.
|
||||
|
||||
This predicate function returns true if you pass it an `Err` and
|
||||
returns false if you pass it an `Ok`
|
||||
|
||||
## MIT Licenced.
|
||||
|
||||
[result]: http://doc.rust-lang.org/std/result/
|
Loading…
Add table
Add a link
Reference in a new issue