hypercore 0.7.0

Secure, distributed, append-only log
Documentation
extern crate failure;
extern crate hypercore;
extern crate random_access_memory as ram;
extern crate random_access_storage;

use self::failure::Error;
use self::random_access_storage::RandomAccessMethods;
use hypercore::{Feed, PublicKey, SecretKey, Storage, Store};
use std::fmt::Debug;

pub fn create_feed(
  page_size: usize,
) -> Result<Feed<ram::RandomAccessMemoryMethods>, Error> {
  let create = |_store: Store| ram::RandomAccessMemory::new(page_size);
  let storage = Storage::new(create)?;
  Ok(Feed::with_storage(storage)?)
}

pub fn copy_keys(
  feed: &Feed<impl RandomAccessMethods<Error = Error> + Debug>,
) -> (PublicKey, SecretKey) {
  match &feed.secret_key() {
    Some(secret) => {
      let secret = secret.to_bytes();
      let public = &feed.public_key().to_bytes();

      let public = PublicKey::from_bytes(public).unwrap();
      let secret = SecretKey::from_bytes(&secret).unwrap();

      return (public, secret);
    }
    _ => panic!("<tests/helpers>: Could not access secret key"),
  }
}