Skip to content

Instantly share code, notes, and snippets.

View loverdos's full-sized avatar

Christos KK Loverdos loverdos

View GitHub Profile
@loverdos
loverdos / async_f_type.rs
Created July 14, 2024 20:54
async_f_type.rs
use core::future::Future;
pub trait AsyncFn<T, R> {
fn call(&self, t: T) -> impl Future<Output = R>;
}
impl<F, T, R, Fut> AsyncFn<T, R> for F
where
F: Fn(T) -> Fut,
Fut: Future<Output = R>,
// tokio = { version = "1", features = ["full"] }
// tracing = "0.1.40"
// tracing-subscriber = "0.3.18"
// snafu = "0.8.3"
// exitcode = "1.1.2"
use tracing::{error as log_error};
use snafu::Report;
use tracing_subscriber;
use std::error::Error;
pub fn do_error_source<F>(source_opt: Option<&dyn Error>, f: F)
where
F: Fn(&dyn Error),
{
match source_opt {
None => {}
Some(source) => {
f(source);
@loverdos
loverdos / Logger.scala
Last active July 7, 2022 11:14
Logger with nested contexts
// Author: github.com/loverdos
// SPDX-License-Identifier: Apache-2.0
import java.io.PrintStream
final class Logger(out: PrintStream = System.out) {
private var ctx = List[String]()
private val indent_chunk = " "
private def ctx_size = ctx.length

Keybase proof

I hereby claim:

  • I am loverdos on github.
  • I am loverdos (https://keybase.io/loverdos) on keybase.
  • I have a public key ASAi41-Ewm_fgf0UGtN1aQEgDix-sDJp3LSsEyuXv4kgRgo

To claim this, I am signing this object:

@loverdos
loverdos / pbquote
Created March 1, 2016 15:54
Re-copy text as email-quoted
#!/bin/sh
# Re-copy text as email-quoted
pbpaste | sed 's/^/>/' | pbcopy
#!/usr/bin/env python
from os.path import expanduser
from ConfigParser import ConfigParser
from sys import argv
kamakirc = "%s/.kamakirc" % expanduser("~")
cfg=ConfigParser()
cfg.read(kamakirc)
@loverdos
loverdos / mvn-project-version.sh
Created May 20, 2015 10:07
Get maven project version from the shell
mvn help:evaluate -Dexpression=project.version | grep -e '^[^\[]'
trait TypeContainer {
type A
type B
type ABPlus
type C
}
trait TypeProjector[TC <: TypeContainer] {
type A = TC#A
type B = TC#B
@loverdos
loverdos / jvm-crasher.scala
Created December 30, 2014 09:10
JVM crasher
{ val u = classOf[sun.misc.Unsafe].getDeclaredField("theUnsafe")
u.setAccessible(true)
u.get(null).asInstanceOf[sun.misc.Unsafe]
} freeMemory 1024