Skip to content

Instantly share code, notes, and snippets.

View jdonaldson's full-sized avatar

Justin Donaldson jdonaldson

  • Mercer Island, Washington
  • 00:22 (UTC -07:00)
View GitHub Profile
" Vim syntax file
" Language: Haxe
" Maintainer: Luca Deltodesco <luca@deltaluca.me.uk>
" Last Change: 2013 August 26
if exists("b:current_syntax")
finish
endif
command! -nargs=+ HaxeHiLink hi def link <args>
@jdonaldson
jdonaldson / gist:9a09287e540e7392857f
Last active August 29, 2015 14:22
Unsafe String abstract
class Main {
static function main() {
var us = new Unsafe("<b>hi!</b>");
foo(us);
}
static function foo(s:String){
trace(s);
}
}
@jdonaldson
jdonaldson / Main.hx
Created November 4, 2015 07:36
Missing Std.string()=>toString() change on int64 abstract for lua.
using haxe.Int64;
import haxe.Int64.*;
class Main {
static function main(){
var a:Int64 = 0;
eq( Std.string( a ), "0" );
}
"["B001B8FXOS","B00TQEZAHO","B00ZV9PXP2","B01EHSMOOK","B00OQVZDJM","B01ILWWG1Y","B01CJ4LJ68","B00MSOND8C","B01C83BE6U","B00KJGY3TO","B00ZFFN656","B00HALPPM0","B015QJ4762","B00E0IWGFA","B01LZF12AY","B000J03ATO","B00O27WXYS","B01CS4RSBE","B01NAAHIAY","B0036AWTDM","B014X2264S","B01KUD6DM0","B0149YVCDQ","B00NIN4SDQ","B00NIMYVJ8","B013AW9LXQ","B012I499WK","B013RZREA8","B01KUD70MC","B01KUD5K3S","B01KUD5RBS","B016K2OH6O","B0193RWAEO","B01ABQBIQW","B01MTQVRUG","B000INOXN4","B006SFUD44","B004813L0S","B0043RSSHI","B01BFIBRIE","B006E7I7MG","B00FLYWNYQ","B01LYGZMMB","B0073GIN08","B01N65TIDD","B00E3R3VRK","B00HMC0LJY","B00M77US74","B01J1MFH3M","B00063T0CA","B0157Z4IS2","B00PC4YR62","B015CD6NVE","B01GHN88HU","B01CL57LF8","B01HA72TB8","B01CV7X448","B016ULRGPE","B01FU98R1E","B01LWU8IWH","B01MQ03ELX","B01LVV0SW7","B01C2PA0KK","B01GIKGUAY","B00JP9ALW4","B01K63R7HY","B01KBPD5Z0","B01LZYA452","B01LYGCK1M","B00SBXBQDS","B01IFJBQ1E","B00N3RFC4G","B014PDFP9S","B00TD4RTEE","B019HHXKQM","B00QGHFW4K","B00TGZRCVA","1499351119","B01CVGV
@jdonaldson
jdonaldson / Main.hx
Last active January 19, 2017 16:16
Quick and dirty array benchmark
import haxe.Timer;
class Main {
static function main() {
var num = 10000000;
var indexcnt =10000 ;
var k = [];
var junk : Array<Dynamic> = [];
var start = Timer.stamp();
walltime(function(){
for (i in 0...num){
import haxe.ds.Either;
class Main {
static function main() {
trace("HI");
var t : WildMap = ["a" => 1, "b"=> 2];
var f = function(x : Map<Int,String>){
trace(x);
for (k in x.keys()){
trace(k);
}
@jdonaldson
jdonaldson / Main.hx
Last active April 6, 2017 03:34
quick uint64_t abstract example
import lua.Lua;
import lua.Ffi;
class Main {
static function main() {
var d = Clock.realtime64();
var d2 = Clock.realtime64();
trace(d2 - d + " is the value for d2 - d");
trace(d2 - 1 + " is the value for d2 - 1");
}
@jdonaldson
jdonaldson / keybase.md
Created October 31, 2017 23:48
keybase.md

Keybase proof

I hereby claim:

  • I am jdonaldson on github.
  • I am omgjjd (https://keybase.io/omgjjd) on keybase.
  • I have a public key ASAJ48Z_opUoHhbGQKzJZbWQYPJjP05hPY3mvsLyjC0Jhwo

To claim this, I am signing this object:

@jdonaldson
jdonaldson / Config.hx
Last active May 24, 2019 17:34
Utility Classes for Haxe
using haxe.macro.Context;
import haxe.macro.Expr;
/**
Simple config merge routine. Supply a series of anonymous objects, and this macro will merge them into a single instance.
This is useful for providing a series of overrides for config, so I've gone with that name.
The benefit is that the macro preserves all of the typing info, so you still get completions, etc. on the merged object.
**/
class Config {
public static macro function merge<T>(arr : Array<ExprOf<T>>) : Expr {
@jdonaldson
jdonaldson / field_completions_string.json
Last active June 26, 2018 23:23
Completions in haxe
[
{
"data": {
"index": 0,
"origin": 0
},
"detail": "public function charAt(index:Int):String",
"documentation": null,
"kind": 2,
"label": "charAt",