namespace factor { struct growable_byte_array { cell count; data_root elements; explicit growable_byte_array(factor_vm *parent,cell capacity = 40) : count(0), elements(parent->allot_byte_array(capacity),parent) { } void append_bytes(void *elts, cell len); void append_byte_array(cell elts); void trim(); }; template byte_array *factor_vm::byte_array_from_value(Type *value) { return byte_array_from_values(value,1); } template byte_array *factor_vm::byte_array_from_values(Type *values, cell len) { cell size = sizeof(Type) * len; byte_array *data = allot_uninitialized_array(size); memcpy(data->data(),values,size); return data; } }