Instantly share code, notes, and snippets.

View Cargo.toml
[dependencies]
csv = { git = "https://github.com/BurntSushi/rust-csv.git" } #"1.0.0-beta.6"
serde = "1.0.38"
serde_derive = "1.0.38"
chrono = { verstion = "0.4.2", features = ["serde"] }
decimal = "2.0.4"
View current.rs
// Current example without codegen
impl Component for TodoList {
fn onload(view: &View<Self>) {
view.query("button").expect("missing todo list button")
.on(EventType::Click, |mut evt| {
match evt.app.query("#message") {
Some(node) => {
let item = TodoItem::new(&node.get("value"));
evt.binding.data_mut().items.push(item);
}
View benchmarks
(Benchmark disclaimers apply. Don't trust the numbers without double checking my code.)
Scala (functional): 697,099 ns/iter
Scala (for loop): 20,467 ns/iter
Rust (functional): 4,984 ns/iter
Rust (for loop): 4,983 ns/iter // Note: this required adding assertions to prevent bounds checking
C (for loop): 6,172 ns/iter // Note: this used -O2 optimization
View Cargo.toml
# You'll need at least these dependencies
[dependencies]
algorithmia = "2.0.0"
base64 = "0.3.0"
serde = "0.9.0"
serde_derive = "0.9.0"
serde_json = "0.9.0"
error-chain = "0.9.0"
View todo.rs
use quasar::*;
struct TodoItem {
label: String,
complete: bool,
}
struct TodoList {
items: Vec<TodoItem>,
}
View all-the-filters.sh
#!/bin/bash
set -e
function die {
echo >&2 $1
exit 1
}
command -v algo >/dev/null 2>&1 || die "Have you installed the Algorithmia CLI"
View random-filters.rb
#!/usr/bin/env ruby
#
# Takes an arbitrary number of files as arguments
# and randomly generates PER_IMAGE filtered versions
# of each image while using each filter an equal
# number of times (approx).
#
# It uses batch inputs to minimize API calls,
# but still expect at least 1 API call per filter
#
View gist:144f2a4b4e699a35536b0c09a43485ce
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
View algo_entrypoint.rs
/*
Example usage:
Note: in all of these cases, the return value must be `Result<T, E>` where:
- `T` has a conversion to `AlgoOutput` (e.g. String, Vec<u8>, JsonValue, (), or anything Serializeable)
- `E` has a conversion to `Box<Error>` (e.g. String or any custom type that `impl Error`)
-------------Text-----------------------
algo_entrypoint! { text => hello }
fn hello(input: &str) -> Result<String, String> {
Ok(format!("Hello {}", input))
View bench_json_zeroes.rs
#![feature(test)]
extern crate serde_json;
extern crate json;
extern crate test;
#[cfg(test)]
mod tests {
use json::{self, JsonValue};
use serde_json::{self, Value};
use test::Bencher;