Example #1
0
static size_t assemble_id_index_value(DocInfo *docinfo, char *dst)
{
    char* const start = dst;
    raw_id_index_value *raw = (raw_id_index_value*)dst;
    raw->db_seq = encode_raw48(docinfo->db_seq);
    raw->size = encode_raw32((uint32_t)docinfo->size);
    raw->bp = encode_raw48(docinfo->bp | (docinfo->deleted ? 1LL<<47 : 0));
    raw->content_meta = encode_raw08(docinfo->content_meta);
    raw->rev_seq = encode_raw48(docinfo->rev_seq);
    dst += sizeof(*raw);

    memcpy(dst, docinfo->rev_meta.buf, docinfo->rev_meta.size);
    dst += docinfo->rev_meta.size;
    return dst - start;
}
Example #2
0
static void test_raw_32(uint32_t value)
{
    raw_32 raw;
    raw = encode_raw32(value);
    assert(decode_raw32(raw) == value);
}