Skip to content

Instantly share code, notes, and snippets.

use std::mem;
use std::slice;
pub struct Pool {
uncommited: usize,
ptr: *mut u8
}
impl Pool {
@fudini
fudini / recrx.js
Last active April 24, 2016 20:41
Recursive Rx
const pageSize = 10
const getPage = page => {
const pageContent = _.range(0, pageSize).map(v => v + (page * pageSize))
if(page == 9) {
return Rx.Observable.just({
nextPage: null,
@fudini
fudini / combine.js
Created September 10, 2015 19:21
Rx combine as object
const combineObject = config => {
const streams = _.values(config)
const keys = _.keys(config)
return Rx.Observable.combineLatest(
...streams,
(...values) => _.zip(values, keys).reduce((acc, [value, key]) => {
acc[key] = value
return acc
var toObservable = request => Rx.Observable.create(observer => {
var req = request.end((err, res) => {
if(err) {
observer.onError(err)
} else {
observer.onNext(res)
observer.onComplete()
}
})
return Rx.Disposable.create(() => {
@fudini
fudini / groupByTransformMerge
Last active August 29, 2015 14:20
GroupBy -> transform -> merge
var groupTransform = (stream$, f, keySelector, selector) => {
return Rx.Observable.create(observer => {
var disposable = new Rx.CompositeDisposable()
disposable.add(stream$.groupBy(keySelector, selector)
.subscribe(groupObservable => {
disposable.add(f(groupObservable, groupObservable.key).subscribe(observer))
}))
@fudini
fudini / gist:ff7882ccd8a51860af31
Last active August 29, 2015 14:10
DataStore with Rx and Ramda
var initialData = []
// These can be converted from other events
var add_ = new Rx.Subject()
var remove_ = new Rx.Subject()
var addF_ = add_.map(R.unary(R.curry(R.union)))
var removeF_ = remove_.map(R.unary(R.flip(R.difference)))
var update = (data, updateF) => updateF(data)
// is it a monad?
var x = 1,
fn = x => x + 1,
gn = x => x * 2
var law1 = new Maybe(x).bind(fn).return() == new Maybe(fn(x)).return()
console.log(law1)
var law2 = new Maybe(x).bind(x => x).return() == new Maybe(x).return()
console.log(law2)
@fudini
fudini / gist:60a194665db571a03986
Created September 27, 2014 12:07
Binary search
function split(arr) {
var l = arr.length,
m = Math.round(l / 2);
return {
left: arr.slice(0, m),
right: arr.slice(m, l)
}
}
function find(arr, el) {
/**
* Recursivelly find the first object with the given key
* @param {object} obj Object to search for key
* @param {string} key Key to find
* @return {object} Value if found, undefined if not found
*/
findValueForKey: function(obj, key) {
var value = undefined;
function find(obj, key) {
for(var k in obj) {
@fudini
fudini / gist:6033413
Created July 18, 2013 21:46
List of currencies with symbols and decimal places in JSON format. (ISO-4217)
{
"AED": {
"code": "AED",
"number": "784",
"symbol": "AED",
"decimals": "2"
},
"AFN": {
"code": "AFN",
"number": "971",