Skip to content

Instantly share code, notes, and snippets.


Julian Bruyat BruJu

View GitHub Profile
BruJu / .block
Last active Jun 13, 2020
View .block
license: mit
View FunctionAsTemplateParameter.cpp
// "How to pass a function in a template parameter ?"
// (I wanted to pass a lambda but it is not possible)
// 2019-12-27
#include <iostream>
#include <string>
#include <vector>
#include <array>
View relaxedbinpacking.cpp
// I was bored so I programmed the binpacking relaxed problem
#include <iostream>
#include <array>
#include <algorithm>
#include <functional>
struct Item {
unsigned int number;
unsigned int utility;
double weight;
BruJu / filter.js
Created Feb 21, 2020
Random filter experiment in js
View filter.js
// Today I discovered that we can write horrible code in Javascript thanks to the thisArg argument of Array.reduce.filter
function myFilter(e) {
if (e % 2) {
this.val += e;
return e % 3 == 0;
var arr = [1,2,3,4,5,6,7,8,9,10];
BruJu /
Created Feb 25, 2020
My bash script to synchronize my clone of the Sophia_rs repository (and use the latest version of Sophia in my project)
cd sophia_rs
git checkout master
git fetch pchampin
git rebase pchampin/master
git push
cd ../PRIWA/wasm_example/
rm Cargo.lock
./ reload
BruJu /
Created Mar 10, 2020
Volatile data in Rust
/// Code example of how to have mutable data in an object passed by ref
/// The use case of this snippet is to cache some computed data
use core::cell::RefCell;
struct Cat {
age: RefCell<Option<i32>>
BruJu /
Last active Jun 11, 2020
Exporting numbers from Rust to Wasm

Initial problem : I tried to export to wasm different complex structures. Time benchmarks were strange and in linear time for every structure.

So I tried to export vectors of numbers

Exporting a vector of 6

extern crate wasm_bindgen;
extern crate js_sys;
use wasm_bindgen::prelude::*;
use std::collections::BTreeSet;
pub struct IntVector {
values: Vec<i32>
View idk.hpp
template <bool try_lock_return>
class DebugMutex {
#ifdef DEBUG
private: std::mutex _mutex;
void lock() { _mutex.lock(); }
void unlock() { _mutex.unlock(); }
bool try_lock() { return _mutex.try_lock(); }
View engineer.c
// Some functions I coded to help a friend that was
// enrolled in an Engineering School
// 2019-05-19
#include <stdio.h>
#include <stdlib.h>
char ** reverse(int argc, char * argv[]) {
char ** new_argv = malloc(sizeof(char *) * argc);