![Build Status](https://travis-ci.org/pocka/rusted.svg?branch=master)
rusted
Rust-like enum, Result, Option, impl and match for javascript.
Install
npm install rusted
Example
These examples require es6 transpiler.
enum
enum Message {
Quit,
ChangeColor(i32,i32,i32),
Move {x:i32, y:i32},
Write(String),
}
let x: Message = Message::Move { x: 3, y: 4 };
let y: Message = Message::Quit;
the above could written as below
import {Enum} from 'rusted';
let Message=Enum({
Quit:null,
ChangeColor:[0,0,0],
Move:{x:0,y:0},
Write:''
});
let x=Message.Move({x:3,y:4});
let y=Message.Quit;
Result
import {Ok,Err,match} from 'rusted';
function Foo(x){
if(x>5){
return Ok(x);
}else{
return Err('Less than 5 !');
}
}
console.log(match(Foo(3),{
Ok:x=>x,
Err:e=>e
}));
console.log(Foo(10).unwrap());
console.log(Foo(3).unwrap());
(es5 version.)
var rusted=require('rusted'),
Ok=rusted.Ok,
Err=rusted.Err,
match=rusted.match;
function Foo(x){
if(x>5){
return Ok(x);
}else{
return Err('Less than 5 !');
}
}
console.log(match(Foo(3),{
Ok:function(x){
return x;
},
Err:function(e){
return e;
}
}));
console.log(Foo(10).unwrap());
console.log(Foo(3).unwrap());
License
MIT