Skip to content

Instantly share code, notes, and snippets.

View berkus's full-sized avatar
🪢
~consume.enhance.replicate~

Berkus Decker berkus

🪢
~consume.enhance.replicate~
View GitHub Profile
@berkus
berkus / playground.rs
Last active April 16, 2019 16:34 — forked from rust-play/playground.rs
Transmute UB and `as` UB
#![allow(mutable_transmutes)]
use std::mem::transmute;
fn main() {
let a: Vec<u64> = Vec::new();
let r = &a;
let r: &mut Vec<u64> = unsafe { transmute(r) };
r.push(1488);
println!("{:?}", a);
@berkus
berkus / playground.rs
Created May 5, 2019 09:47 — forked from rust-play/playground.rs
Code shared from the Rust Playground
trait Def<T> {
fn def(&self, foo: T) -> bool;
}
impl<T, Func> Def<T> for Func
where Func: Fn(T) -> bool
{
fn def(&self, foo: T) -> bool {
(self)(foo)
@berkus
berkus / playground.rs
Created August 2, 2019 15:24 — forked from rust-play/playground.rs
Code shared from the Rust Playground
use std::collections::hash_map::Entry;
use std::collections::HashMap;
trait EntryExt<'a, K, V>: 'a {
fn or_insert_with2<F: FnOnce(&K) -> V>(self, f: F) -> &'a mut V;
}
impl<'a, K, V> EntryExt<'a, K, V> for Entry<'a, K, V> {
fn or_insert_with2<F: FnOnce(&K) -> V>(self, f: F) -> &'a mut V {
match self {
@berkus
berkus / playground.rs
Created August 29, 2019 07:34 — forked from rust-play/playground.rs
Code shared from the Rust Playground
#![feature(unboxed_closures, fn_traits)]
fn main() {
let add = |a: i32, b: i32| a + b;
let sqr = |a: i32| a.pow(2);
let add_two = |a: i32| a + 2;
assert_eq!(chain(add, sqr)(2, 3), 25);
assert_eq!(
chain(
@berkus
berkus / AnalogLiterals.hpp
Created September 13, 2021 21:34 — forked from yamamushi/AnalogLiterals.hpp
Multi-Dimensional Analog Literals in C++
/*
Referenced from:
http://web.archive.org/web/20120110153227/http://weegen.home.xs4all.nl/eelis/analogliterals.xhtml
*/
#ifndef ANALOGLITERALS_HPP
#define ANALOGLITERALS_HPP
namespace analog_literals {