/*
 * call-seq:
 *      rd.dup               -> rd_copy
 *
 * Duplicates and snapshots the current state of a Raindrops object.
 */
static VALUE init_copy(VALUE dest, VALUE source)
{
        struct raindrops *dst = DATA_PTR(dest);
        struct raindrops *src = get(source);

        init(dest, SIZET2NUM(src->size));
        memcpy(dst->drops, src->drops, raindrop_size * src->size);

        return dest;
}