package granary

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file rowid.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let encode n =
  let n = Int64.logxor n 0x8000_0000_0000_0000L in
  let b = Bytes.create 8 in
  for i = 0 to 7 do
    let byte = Int64.to_int (Int64.shift_right_logical n ((7 - i) * 8)) land 0xFF in
    Bytes.set_uint8 b i byte
  done;
  b
;;

let decode b =
  let n = ref 0L in
  for i = 0 to 7 do
    let byte = Bytes.get_uint8 b i in
    n := Int64.logor !n (Int64.shift_left (Int64.of_int byte) ((7 - i) * 8))
  done;
  Int64.logxor !n 0x8000_0000_0000_0000L
;;

[@@@ai_disclosure "ai-generated"]
[@@@ai_model "claude-opus-4-7"]
[@@@ai_provider "Anthropic"]