Skip to content

Instantly share code, notes, and snippets.

View eddyb's full-sized avatar

Eduard-Mihai Burtescu eddyb

View GitHub Profile
@eddyb
eddyb / test.rs
Last active August 29, 2015 13:57
mod config {
pub enum Node<T> {
Directory(~str, ~[Node<T>]),
Entry(~str, T)
}
impl<T> Node<T> {
pub fn add(&mut self, entry: Node<T>) -> Option<&mut self> {
let succeeded = match *self {
Directory(_, ref mut list) => { list.push(entry); true }
@eddyb
eddyb / test.rs
Last active August 29, 2015 13:57
mod config {
pub enum Node<T> {
Directory(~str, ~[Node<T>]),
Entry(~str, T)
}
impl<T> Node<T> {
pub fn add(&mut self, entry: Node<T>) -> bool {
match *self {
Directory(_, ref mut list) => { list.push(entry); true }
@eddyb
eddyb / test.rs
Last active August 29, 2015 13:57
type ParseResult<S, R> = Result<(R, ~[S]), ~str>;
enum Parser<'a, S, R> {
Parser('a |&[S]| -> ~[ParseResult<S, R>])
}
fn main() {
let p = Parser(/* missing argument here */);
println!("test");
}
fn pop<T, ..Stack>((_, ..stack): (T, ..Stack)) -> Stack {
stack
}
fn dup<T: Clone, ..Stack>((x, ..stack): (T, ..Stack)) -> (T, T, ..Stack) {
(x.clone(), x, ..stack)
}
fn swap<T, U, ..Stack>((x, y, ..stack): (T, U, ..Stack)) -> (U, T, ..Stack) {
(y, x, ..stack)
@eddyb
eddyb / rustfilt.sh
Last active November 30, 2016 16:22
#!/usr/bin/env bash
SED_SCRIPT=`echo '{\
s/_\\$/$/g;\
s/\\$BP\\$/\&/g;\
s/\\$SP\\$/\@/g;\
s/\\$LT\\$/</g;\
s/\\$GT\\$/>/g;\
s/\\$LP\\$/(/g;\
s/\\$RP\\$/)/g;\
s/\\$RF\\$/\\&/g;\
@eddyb
eddyb / foo.rs
Created January 26, 2014 12:25 — forked from bvssvni/gist:8631956
/*
Tests the Any trait.
*/
pub struct Player {
name: ~str
}
@eddyb
eddyb / gist:7886876
Last active December 30, 2015 21:19 — forked from ezyang/gist:7886849
pub unsafe fn allocMegaGroup(mblocks: nat) -> ~Block {
let n = MBLOCK_GROUP_BLOCKS(mblocks);
enum SearchResult<'a> {
PerfectMatch(~Block),
BestMatch(&'a mut BlockData, &'a mut BlockMeta),
NoMatch
}
fn go<'a>(n: uint,
prev_link: &'a mut Option<~Block>,
best: Option<(&'a mut BlockData, &'a mut BlockMeta)>)
@eddyb
eddyb / gist:7789849
Last active December 30, 2015 06:29 — forked from anonymous/gist:7789813
// array per definizione nomi da 0 a 19
static a19: [&'static str, ..20] = [
"", "uno", "due", "tre",
"quattro","cinque", "sei", "sette", "otto",
"nove", "dieci", "undici", "dodici",
"tredici", "quattordici", "quindici",
"sedici", "diciassette", "diciotto",
"diciannove"
];
@eddyb
eddyb / gist:7673295
Last active December 29, 2015 12:49 — forked from cnd/gist:7673288
(
|a: |b: |||| a(|| {})
)(
|b: ||| b()
)
@eddyb
eddyb / gist:7640657
Last active December 29, 2015 07:59 — forked from cnd/gist:7640445
let (ref cfg, ref appCfg) = {
let prefix = Path::new(getenv("HOME").unwrap_or(~""));
(prefix.join(".Sync.conf"), prefix.join(".Mirana.conf"))
};