okvs 0.2.0

WIP implementation of Oblivious Key-Value Stores
Documentation
use crate::{bits::Bits, hashable::Hashable};

use super::Okvs;

/// A garbled cuckoo table with three hash functions proposed by Garimella, Pinkas, Rosulek, Trieu, and Yanai. See https://eprint.iacr.org/2021/883.
pub struct GarbledCt {}

impl<V: Bits> Okvs<V> for GarbledCt {
    fn try_encode<K: Hashable>(key_value_pairs: &[(K, V)], _lambda: usize) -> Option<Self> {
        // From Figure 4 in https://eprint.iacr.org/2021/883.pdf
        let _bin_count = (1.3 * key_value_pairs.len() as f64).ceil() as usize;

        todo!()
    }

    fn decode<K: Hashable>(&self, _key: &K) -> V {
        todo!()
    }

    fn to_bytes(self) -> Vec<u8> {
        todo!()
    }

    fn from_bytes(_bytes: &[u8]) -> Self {
        todo!()
    }
}