namespace Eva { public class Binary : Object, Term { public void* value {get; private set;} public long len {get; private set;} public Binary(char[] v) { value = Memory.dup(v, (uint)(sizeof(char)*v.length)); len = v.length; } public string to_string() { return "#Bin"; } protected bool do_match(Term o, Gee.Map vars, Gee.Map aliases) { if(o is Var) { return o.do_match(this, vars, aliases); } if(o is Binary) { Binary b = o as Binary; if(b.len != len) return false; return (Memory.cmp(value, b.value, len) == 0); } else { return false; } } public void encode(Erl.Buffer buffer) { buffer.encode_binary((char*)value, len); } } }