Skip to content

Instantly share code, notes, and snippets.

View lilyball's full-sized avatar

Lily Ballard lilyball

View GitHub Profile
@lilyball
lilyball / config.rs
Last active August 29, 2015 14:01 — forked from daboross/config.rs
extern crate serialize;
extern crate std;
extern crate collections;
use self::serialize::json;
use self::serialize::json::Json;
use self::std::io::File;
use self::collections::TreeMap;
pub fn load_config_map() -> Result<TreeMap<~str, Json>,~str> {
@lilyball
lilyball / id.rs
Last active August 29, 2015 13:56 — forked from alan-andrade/id.rs
// The C method signature is as follows:
int
getgrouplist(const char *name, int basegid, int *groups, int *ngroups);
// My Rust extern block
extern {
fn getgrouplist(name: *libc::c_char,
basegid: libc::c_int,
@lilyball
lilyball / testmp.rs
Created November 20, 2013 00:33 — forked from DaGenix/testmp.rs
enum State {
Even(~int),
Odd(~int)
}
struct MyNumber {
num: State
}
impl MyNumber {
#[fixed_stack_segment]
fn exec_program(program: &str, args: &[~str]) {
do program.to_c_str().with_ref() |c_program| {
// I don't much care about the ownership of the strings here
// at this point, so let's just fail if execvp isn't working.
unsafe {
let mut c_args = args.map(|arg| { arg.to_c_str().unwrap() });
c_args.push(ptr::null());
execvp(c_program, vec::raw::to_ptr(c_args));
// perror("Running tmux failed:".to_c_str().unwrap()); // Super horrific, apparently, let's use it for debugging only.
fn session_number(line: &str) -> Option<int> {
line.split_iter(':').next().and_then(|s| int::from_str(s))
}
fn occupied_sessions(output: ~str) -> HashSet<int> {
let mut set = HashSet::new();
for line in output.line_iter(){
match session_number(line) {
Some(n) => { set.insert(n); }
None => ()
@lilyball
lilyball / multicast.rs
Last active December 21, 2015 03:48 — forked from jfager/multicast.rs
use std::task;
use std::task::TaskBuilder;
enum MultiCastHackForSelect<T> {
Msg(T),
MsgChan(Chan<T>),
}
struct MultiCast<T> {
priv ch: Chan<MultiCastHackForSelect<T>>
@lilyball
lilyball / btree.rs
Last active December 19, 2015 16:08 — forked from smvv/btree.rs
/*
rustc -O -L. --test -o btree btree.rs
btree.rs:68:24: 79:7 error: mismatched types: expected `~[~str]` but found `std::iterator::MapIterator<,&std::option::Option<TreeItem<T,U>>,~(),std::vec::VecIterator<,std::option::Option<TreeItem<T,U>>>>` (expected vector but found struct std::iterator::MapIterator)
btree.rs:68 let buf : ~[~str] = tree.nodes.iter().transform(|x| {
btree.rs:69 ~"\t".repeat(indent).push_str(match *x {
btree.rs:70 Some(TreeNode { key: k, value: tree }) => {
btree.rs:71 let buf = ~"Node(key=...)\n";
btree.rs:72 buf //buf.push_str(tree.to_str())
btree.rs:73 }
...
fn main() {
fn main() {
let i = str::to_bytes("Hello, world!");
println(fmt!("%?", i));
}
#include <string>
#include <sstream>
#include <vector>
#include <iomanip>
std::string human_readable_duration(int num_seconds) {
static int divisions[3] = {60, 60, 24};
std::stringstream buf;
if (num_seconds < divisions[0]) {
buf << num_seconds << " seconds";
@lilyball
lilyball / A
Created August 23, 2012 01:26 — forked from UnidentifiedContributor/gist:3430820
TheEmpath repping 4over with class
This part: what you think we're all reacting to:
~ #node.js
[20.16.16] < TheEmpath> so
[20.16.34] < TheEmpath> anyone else have a hot programmer girl in their office? o____O
[20.16.42] < Lorentz> I wiiish