! Copyright (C) 2014 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: alien.c-types alien.data byte-arrays compression.snappy.ffi kernel sequences ; IN: compression.snappy ERROR: snappy-error error ; outs ( n -- byte-array size_t* ) [ ] [ size_t ] bi ; PRIVATE> : snappy-compress ( byte-array -- compressed ) dup length dup snappy_max_compressed_length n>outs [ snappy_compress check-snappy ] 2keep size_t deref head ; : snappy-uncompress ( compressed -- byte-array ) dup length over dup length 0 size_t [ snappy_uncompressed_length check-snappy ] keep size_t deref n>outs [ snappy_uncompress check-snappy ] 2keep drop >byte-array ;