From ca02f6c30868acea94226a65816293d43ec71e4c Mon Sep 17 00:00:00 2001 From: timotree3 Date: Sun, 22 Dec 2019 00:45:13 -0500 Subject: [PATCH 1/4] core_types: Update to 2018 edition --- crates/core_types/Cargo.toml | 1 + crates/core_types/src/crud_status.rs | 2 +- crates/core_types/src/dna/entry_types.rs | 3 +-- crates/core_types/src/dna/mod.rs | 4 ++-- crates/core_types/src/dna/zome.rs | 2 +- crates/core_types/src/eav/query.rs | 2 +- crates/core_types/src/eav/storage.rs | 6 ++++-- crates/core_types/src/entry/entry_type.rs | 2 +- crates/core_types/src/entry/mod.rs | 16 +++++++++------- crates/core_types/src/error/ribosome_error.rs | 2 +- crates/core_types/src/hdk_version.rs | 2 +- crates/core_types/src/lib.rs | 18 ++++-------------- crates/core_types/src/link/link_data.rs | 9 +++------ crates/core_types/src/link/mod.rs | 5 ++--- crates/core_types/src/time.rs | 2 +- crates/core_types/src/validation.rs | 2 +- 16 files changed, 34 insertions(+), 44 deletions(-) diff --git a/crates/core_types/Cargo.toml b/crates/core_types/Cargo.toml index 6a54b64ab0..44083d7f72 100644 --- a/crates/core_types/Cargo.toml +++ b/crates/core_types/Cargo.toml @@ -9,6 +9,7 @@ license = "GPL-3.0-only" readme = "README.md" documentation = "https://github.com/holochain/holochain-rust" repository = "https://github.com/holochain/holochain-rust" +edition = "2018" [dependencies] futures = "=0.3.1" diff --git a/crates/core_types/src/crud_status.rs b/crates/core_types/src/crud_status.rs index b7fd4ffc9c..6773ac50a7 100644 --- a/crates/core_types/src/crud_status.rs +++ b/crates/core_types/src/crud_status.rs @@ -5,7 +5,7 @@ use crate::eav::EntityAttributeValueIndex; -use eav::Attribute; +use crate::eav::Attribute; use std::{convert::TryInto, str::FromStr}; use holochain_persistence_api::{ diff --git a/crates/core_types/src/dna/entry_types.rs b/crates/core_types/src/dna/entry_types.rs index 83533256d7..a0545d0ff6 100644 --- a/crates/core_types/src/dna/entry_types.rs +++ b/crates/core_types/src/dna/entry_types.rs @@ -1,7 +1,6 @@ //! File holding all the structs for handling entry types defined by DNA. -use dna::zome::ZomeEntryTypes; -use entry::entry_type::EntryType; +use crate::{dna::zome::ZomeEntryTypes, entry::entry_type::EntryType}; use holochain_json_api::{error::JsonError, json::JsonString}; use serde::{ser::SerializeMap, Deserialize, Deserializer, Serializer}; use std::collections::BTreeMap; diff --git a/crates/core_types/src/dna/mod.rs b/crates/core_types/src/dna/mod.rs index 7cd5301ab7..b66e630df0 100644 --- a/crates/core_types/src/dna/mod.rs +++ b/crates/core_types/src/dna/mod.rs @@ -49,7 +49,7 @@ use holochain_json_api::{ json::JsonString, }; -use entry::entry_type::AppEntryType; +use crate::entry::entry_type::AppEntryType; use multihash; use serde_json::{self, Value}; use std::{ @@ -307,7 +307,6 @@ impl PartialEq for Dna { #[cfg(test)] pub mod tests { use super::*; - extern crate base64; use crate::{ dna::{ bridges::{Bridge, BridgePresence, BridgeReference}, @@ -317,6 +316,7 @@ pub mod tests { }, entry::entry_type::{AppEntryType, EntryType}, }; + use base64; use holochain_json_api::json::JsonString; use holochain_persistence_api::cas::content::Address; use std::convert::TryFrom; diff --git a/crates/core_types/src/dna/zome.rs b/crates/core_types/src/dna/zome.rs index fe21add32a..ce30a40310 100644 --- a/crates/core_types/src/dna/zome.rs +++ b/crates/core_types/src/dna/zome.rs @@ -12,7 +12,7 @@ use crate::{ use holochain_json_api::{error::JsonError, json::JsonString}; -use dna::entry_types::{self, deserialize_entry_types, serialize_entry_types, EntryTypeDef}; +use crate::dna::entry_types::{self, deserialize_entry_types, serialize_entry_types, EntryTypeDef}; use std::collections::BTreeMap; /// Represents the "config" object on a "zome". diff --git a/crates/core_types/src/eav/query.rs b/crates/core_types/src/eav/query.rs index ac0a2a7fa1..c0c05f9b23 100644 --- a/crates/core_types/src/eav/query.rs +++ b/crates/core_types/src/eav/query.rs @@ -1,4 +1,4 @@ -use eav::eavi::Attribute; +use crate::eav::eavi::Attribute; /// Represents a set of filtering operations on the EAVI store. pub type EaviQuery<'a> = holochain_persistence_api::eav::query::EaviQuery<'a, Attribute>; diff --git a/crates/core_types/src/eav/storage.rs b/crates/core_types/src/eav/storage.rs index edc77a9d5d..e516fcfc0a 100644 --- a/crates/core_types/src/eav/storage.rs +++ b/crates/core_types/src/eav/storage.rs @@ -1,5 +1,7 @@ -use eav::{eavi::EntityAttributeValueIndex, query::EaviQuery}; -use error::{HcResult, HolochainError}; +use crate::{ + eav::{eavi::EntityAttributeValueIndex, query::EaviQuery}, + error::{HcResult, HolochainError}, +}; use objekt; use std::{ collections::BTreeSet, diff --git a/crates/core_types/src/entry/entry_type.rs b/crates/core_types/src/entry/entry_type.rs index 13f997c195..06632f97b6 100644 --- a/crates/core_types/src/entry/entry_type.rs +++ b/crates/core_types/src/entry/entry_type.rs @@ -1,4 +1,4 @@ -use error::HolochainError; +use crate::error::HolochainError; use holochain_json_api::{error::JsonError, json::JsonString}; use std::{ convert::TryFrom, diff --git a/crates/core_types/src/entry/mod.rs b/crates/core_types/src/entry/mod.rs index 728595a1b9..22cd63bcdb 100644 --- a/crates/core_types/src/entry/mod.rs +++ b/crates/core_types/src/entry/mod.rs @@ -11,18 +11,20 @@ use self::{ cap_entries::{CapTokenClaim, CapTokenGrant}, deletion_entry::DeletionEntry, }; -use agent::{test_agent_id, AgentId}; -use chain_header::ChainHeader; -use chain_migrate::ChainMigrate; -use crud_status::CrudStatus; -use dna::Dna; -use entry::entry_type::{test_app_entry_type, test_app_entry_type_b, AppEntryType, EntryType}; +use crate::{ + agent::{test_agent_id, AgentId}, + chain_header::ChainHeader, + chain_migrate::ChainMigrate, + crud_status::CrudStatus, + dna::Dna, + entry::entry_type::{test_app_entry_type, test_app_entry_type_b, AppEntryType, EntryType}, + link::{link_data::LinkData, link_list::LinkList}, +}; use holochain_json_api::{ error::{JsonError, JsonResult}, json::{JsonString, RawString}, }; use holochain_persistence_api::cas::content::{Address, AddressableContent, Content}; -use link::{link_data::LinkData, link_list::LinkList}; use multihash::Hash; use serde::{ser::SerializeTuple, Deserialize, Deserializer, Serializer}; use snowflake; diff --git a/crates/core_types/src/error/ribosome_error.rs b/crates/core_types/src/error/ribosome_error.rs index daf478ca3a..0978e7df05 100644 --- a/crates/core_types/src/error/ribosome_error.rs +++ b/crates/core_types/src/error/ribosome_error.rs @@ -2,7 +2,7 @@ use self::{RibosomeEncodedValue::*, RibosomeErrorCode::*}; use crate::error::HolochainError; use holochain_json_api::{error::JsonError, json::JsonString}; -use bits_n_pieces::u64_split_bits; +use crate::bits_n_pieces::u64_split_bits; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::{convert::TryFrom, str::FromStr}; diff --git a/crates/core_types/src/hdk_version.rs b/crates/core_types/src/hdk_version.rs index 6448d69b71..7e9c1a9ed3 100644 --- a/crates/core_types/src/hdk_version.rs +++ b/crates/core_types/src/hdk_version.rs @@ -1,4 +1,4 @@ -use error::{HcResult, HolochainError}; +use crate::error::{HcResult, HolochainError}; lazy_static! { pub static ref HDK_VERSION: HDKVersion = { diff --git a/crates/core_types/src/lib.rs b/crates/core_types/src/lib.rs index f7224d9de8..29a26c2eff 100644 --- a/crates/core_types/src/lib.rs +++ b/crates/core_types/src/lib.rs @@ -7,34 +7,24 @@ #![feature(never_type)] #![warn(unused_extern_crates)] -extern crate backtrace; -extern crate base64; -extern crate chrono; -extern crate futures; #[macro_use] extern crate lazy_static; -extern crate multihash; -extern crate serde; + #[macro_use] extern crate serde_json; #[macro_use] extern crate serde_derive; -extern crate snowflake; + // #[macro_use] extern crate shrinkwraprs; #[macro_use] extern crate holochain_json_derive; -extern crate holochain_json_api; -extern crate holochain_locksmith; -extern crate holochain_persistence_api; -extern crate lib3h_crypto_api; -extern crate regex; + #[cfg(test)] #[macro_use] extern crate maplit; // #[macro_use] // extern crate shrinkwraprs; -extern crate hcid; -extern crate wasmi; + #[macro_use] extern crate log; diff --git a/crates/core_types/src/link/link_data.rs b/crates/core_types/src/link/link_data.rs index 2f0e8c1e07..9629ff1b01 100644 --- a/crates/core_types/src/link/link_data.rs +++ b/crates/core_types/src/link/link_data.rs @@ -1,13 +1,10 @@ use crate::{ - agent::AgentId, - chain_header::ChainHeader, - link::{Link, LinkActionKind}, + agent::{test_agent_id, AgentId}, + chain_header::{test_chain_header, ChainHeader}, + link::{example_link, Link, LinkActionKind}, }; -use agent::test_agent_id; -use chain_header::test_chain_header; use holochain_json_api::{error::JsonError, json::JsonString}; use holochain_persistence_api::cas::content::Address; -use link::example_link; //------------------------------------------------------------------------------------------------- // LinkData diff --git a/crates/core_types/src/link/mod.rs b/crates/core_types/src/link/mod.rs index 0e0c4195f9..d4c1bcc1da 100644 --- a/crates/core_types/src/link/mod.rs +++ b/crates/core_types/src/link/mod.rs @@ -11,11 +11,10 @@ use holochain_persistence_api::cas::content::Address; use crate::{ agent::AgentId, chain_header::ChainHeader, - entry::{test_entry_a, test_entry_b}, + entry::{test_entry_a, test_entry_b, Entry}, + link::link_data::LinkData, }; -use entry::Entry; use holochain_persistence_api::cas::content::AddressableContent; -use link::link_data::LinkData; use regex::Regex; type LinkType = String; diff --git a/crates/core_types/src/time.rs b/crates/core_types/src/time.rs index 688b7c1ec9..4173e43ba1 100644 --- a/crates/core_types/src/time.rs +++ b/crates/core_types/src/time.rs @@ -1,8 +1,8 @@ //! The Iso8601 type is defined here. It is used in particular within ChainHeader to enforce that //! their timestamps are defined in a useful and consistent way. +use crate::error::HolochainError; use chrono::{offset::FixedOffset, DateTime, TimeZone}; -use error::HolochainError; use holochain_json_api::{error::JsonError, json::JsonString}; use regex::Regex; diff --git a/crates/core_types/src/validation.rs b/crates/core_types/src/validation.rs index 2e67445fef..5544ae2afb 100644 --- a/crates/core_types/src/validation.rs +++ b/crates/core_types/src/validation.rs @@ -15,7 +15,7 @@ use crate::{ use holochain_json_api::{error::JsonError, json::JsonString}; use holochain_persistence_api::cas::content::Address; -use chain_header::test_chain_header; +use crate::chain_header::test_chain_header; use std::convert::TryFrom; From 88af2fe20ec673376da08853e2af4e73db413104 Mon Sep 17 00:00:00 2001 From: timotree3 Date: Sun, 22 Dec 2019 11:42:21 -0500 Subject: [PATCH 2/4] core_types: Remove all `extern crate`s --- crates/core_types/src/agent.rs | 2 ++ crates/core_types/src/chain_header.rs | 2 ++ crates/core_types/src/chain_migrate.rs | 1 + crates/core_types/src/crud_status.rs | 2 ++ crates/core_types/src/dna/bridges.rs | 1 + crates/core_types/src/dna/capabilities.rs | 8 +++-- crates/core_types/src/dna/entry_types.rs | 3 +- crates/core_types/src/dna/fn_declarations.rs | 2 ++ crates/core_types/src/dna/mod.rs | 4 +++ crates/core_types/src/dna/wasm.rs | 5 +-- crates/core_types/src/dna/zome.rs | 2 ++ crates/core_types/src/eav/eavi.rs | 3 ++ crates/core_types/src/eav/storage.rs | 2 +- crates/core_types/src/entry/cap_entries.rs | 2 ++ crates/core_types/src/entry/deletion_entry.rs | 2 ++ crates/core_types/src/entry/entry_type.rs | 2 ++ crates/core_types/src/entry/mod.rs | 3 +- crates/core_types/src/error/dna_error.rs | 1 + crates/core_types/src/error/mod.rs | 2 ++ crates/core_types/src/error/ribosome_error.rs | 1 + crates/core_types/src/hdk_version.rs | 1 + crates/core_types/src/lib.rs | 34 +++---------------- crates/core_types/src/link/link_data.rs | 2 ++ crates/core_types/src/link/link_list.rs | 2 ++ crates/core_types/src/link/mod.rs | 2 ++ crates/core_types/src/network/entry_aspect.rs | 2 ++ crates/core_types/src/network/query.rs | 2 ++ crates/core_types/src/signature.rs | 2 ++ crates/core_types/src/time.rs | 2 ++ crates/core_types/src/validation.rs | 2 ++ 30 files changed, 63 insertions(+), 38 deletions(-) diff --git a/crates/core_types/src/agent.rs b/crates/core_types/src/agent.rs index ddf95471d0..aaa66e10fc 100644 --- a/crates/core_types/src/agent.rs +++ b/crates/core_types/src/agent.rs @@ -1,4 +1,6 @@ use crate::{entry::Entry, error::HcResult}; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use holochain_persistence_api::cas::content::{Address, AddressableContent, Content}; diff --git a/crates/core_types/src/chain_header.rs b/crates/core_types/src/chain_header.rs index 66e1565b1a..54a8cb6fb5 100644 --- a/crates/core_types/src/chain_header.rs +++ b/crates/core_types/src/chain_header.rs @@ -11,6 +11,8 @@ use crate::{ signature::{Provenance, Signature}, time::{test_iso_8601, Iso8601}, }; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use holochain_persistence_api::cas::content::{Address, AddressableContent, Content}; diff --git a/crates/core_types/src/chain_migrate.rs b/crates/core_types/src/chain_migrate.rs index f9351dc08e..f79215f980 100644 --- a/crates/core_types/src/chain_migrate.rs +++ b/crates/core_types/src/chain_migrate.rs @@ -1,4 +1,5 @@ //! NOT YET AVAILABLE +use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub struct ChainMigrate {} diff --git a/crates/core_types/src/crud_status.rs b/crates/core_types/src/crud_status.rs index 6773ac50a7..4d68bcd29f 100644 --- a/crates/core_types/src/crud_status.rs +++ b/crates/core_types/src/crud_status.rs @@ -4,6 +4,8 @@ //! even including an entry being marked as deleted. use crate::eav::EntityAttributeValueIndex; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use crate::eav::Attribute; use std::{convert::TryInto, str::FromStr}; diff --git a/crates/core_types/src/dna/bridges.rs b/crates/core_types/src/dna/bridges.rs index d36d1d05f3..9208104e4f 100644 --- a/crates/core_types/src/dna/bridges.rs +++ b/crates/core_types/src/dna/bridges.rs @@ -1,5 +1,6 @@ use crate::dna::fn_declarations::Trait; use holochain_persistence_api::cas::content::Address; +use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; diff --git a/crates/core_types/src/dna/capabilities.rs b/crates/core_types/src/dna/capabilities.rs index 4e3aa4d5b4..bfb78cad6d 100644 --- a/crates/core_types/src/dna/capabilities.rs +++ b/crates/core_types/src/dna/capabilities.rs @@ -1,10 +1,12 @@ +use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; +use holochain_persistence_api::cas::content::Address; +use serde::{Deserialize, Serialize}; + /// capabilities implements the capability request functionality used to check /// that a given capability has been granted for actions like zome calls use crate::signature::{Provenance, Signature}; -use holochain_json_api::{error::JsonError, json::JsonString}; -use holochain_persistence_api::cas::content::Address; - //-------------------------------------------------------------------------------------------------- // CapabilityRequest //-------------------------------------------------------------------------------------------------- diff --git a/crates/core_types/src/dna/entry_types.rs b/crates/core_types/src/dna/entry_types.rs index a0545d0ff6..e95a83a5d3 100644 --- a/crates/core_types/src/dna/entry_types.rs +++ b/crates/core_types/src/dna/entry_types.rs @@ -2,7 +2,8 @@ use crate::{dna::zome::ZomeEntryTypes, entry::entry_type::EntryType}; use holochain_json_api::{error::JsonError, json::JsonString}; -use serde::{ser::SerializeMap, Deserialize, Deserializer, Serializer}; +use holochain_json_derive::DefaultJson; +use serde::{ser::SerializeMap, Deserialize, Deserializer, Serialize, Serializer}; use std::collections::BTreeMap; /// Enum for Zome EntryType "sharing" property. diff --git a/crates/core_types/src/dna/fn_declarations.rs b/crates/core_types/src/dna/fn_declarations.rs index 81317a04ce..df9a26ac8a 100644 --- a/crates/core_types/src/dna/fn_declarations.rs +++ b/crates/core_types/src/dna/fn_declarations.rs @@ -1,5 +1,7 @@ //! File holding all the structs for handling function declarations defined in DNA. +use serde::{Deserialize, Serialize}; + /// Represents the type declaration for zome function parameter #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Hash)] pub struct FnParameter { diff --git a/crates/core_types/src/dna/mod.rs b/crates/core_types/src/dna/mod.rs index b66e630df0..4a4eaeb9af 100644 --- a/crates/core_types/src/dna/mod.rs +++ b/crates/core_types/src/dna/mod.rs @@ -41,6 +41,9 @@ use crate::{ entry::entry_type::EntryType, error::{DnaError, HcResult, HolochainError}, }; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; +use serde_json::json; use holochain_persistence_api::cas::content::{AddressableContent, Content}; @@ -319,6 +322,7 @@ pub mod tests { use base64; use holochain_json_api::json::JsonString; use holochain_persistence_api::cas::content::Address; + use maplit::btreemap; use std::convert::TryFrom; pub fn test_dna() -> Dna { diff --git a/crates/core_types/src/dna/wasm.rs b/crates/core_types/src/dna/wasm.rs index 2963aa00c3..6cea6b8605 100644 --- a/crates/core_types/src/dna/wasm.rs +++ b/crates/core_types/src/dna/wasm.rs @@ -1,14 +1,15 @@ //! holochain_core_types::dna::wasm is a module for managing webassembly code //! - within the in-memory dna struct //! - and serialized to json -use backtrace::Backtrace; - use crate::error::HolochainError; +use backtrace::Backtrace; use base64; +use log::debug; use serde::{ self, de::{Deserializer, Visitor}, ser::Serializer, + Deserialize, Serialize, }; use std::{ fmt, diff --git a/crates/core_types/src/dna/zome.rs b/crates/core_types/src/dna/zome.rs index ce30a40310..f99e12b066 100644 --- a/crates/core_types/src/dna/zome.rs +++ b/crates/core_types/src/dna/zome.rs @@ -9,6 +9,8 @@ use crate::{ }, entry::entry_type::EntryType, }; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use holochain_json_api::{error::JsonError, json::JsonString}; diff --git a/crates/core_types/src/eav/eavi.rs b/crates/core_types/src/eav/eavi.rs index 6918b2e6d3..ee26375076 100644 --- a/crates/core_types/src/eav/eavi.rs +++ b/crates/core_types/src/eav/eavi.rs @@ -3,6 +3,7 @@ //! being used to define relationships between AddressableContent values. //! See [wikipedia](https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model) to learn more about this pattern. +use holochain_json_derive::DefaultJson; use holochain_persistence_api::{ cas::content::{Address, AddressableContent, Content}, eav::{ @@ -13,6 +14,8 @@ use holochain_persistence_api::{ }, error::{PersistenceError, PersistenceResult}, }; +use lazy_static::lazy_static; +use serde::{Deserialize, Serialize}; use holochain_json_api::{error::JsonError, json::JsonString}; diff --git a/crates/core_types/src/eav/storage.rs b/crates/core_types/src/eav/storage.rs index e516fcfc0a..3238573f0f 100644 --- a/crates/core_types/src/eav/storage.rs +++ b/crates/core_types/src/eav/storage.rs @@ -36,7 +36,7 @@ pub trait EntityAttributeValueStorage: objekt::Clone + Send + Sync + Debug { // I: Iterator; } -clone_trait_object!(EntityAttributeValueStorage); +objekt::clone_trait_object!(EntityAttributeValueStorage); #[derive(Clone, Debug, Default)] pub struct ExampleEntityAttributeValueStorage { diff --git a/crates/core_types/src/entry/cap_entries.rs b/crates/core_types/src/entry/cap_entries.rs index 3fd0eadefe..904fa764e1 100644 --- a/crates/core_types/src/entry/cap_entries.rs +++ b/crates/core_types/src/entry/cap_entries.rs @@ -1,4 +1,6 @@ use crate::{entry::Entry, error::HolochainError}; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use holochain_persistence_api::cas::content::{Address, AddressableContent}; diff --git a/crates/core_types/src/entry/deletion_entry.rs b/crates/core_types/src/entry/deletion_entry.rs index 29d78d143c..0f0943f11a 100644 --- a/crates/core_types/src/entry/deletion_entry.rs +++ b/crates/core_types/src/entry/deletion_entry.rs @@ -1,5 +1,7 @@ use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; use holochain_persistence_api::cas::content::Address; +use serde::{Deserialize, Serialize}; //------------------------------------------------------------------------------------------------- // DeletionEntry diff --git a/crates/core_types/src/entry/entry_type.rs b/crates/core_types/src/entry/entry_type.rs index 06632f97b6..f9eec79120 100644 --- a/crates/core_types/src/entry/entry_type.rs +++ b/crates/core_types/src/entry/entry_type.rs @@ -1,5 +1,7 @@ use crate::error::HolochainError; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use std::{ convert::TryFrom, fmt::{Display, Formatter, Result as FmtResult}, diff --git a/crates/core_types/src/entry/mod.rs b/crates/core_types/src/entry/mod.rs index 22cd63bcdb..948ef8c1ed 100644 --- a/crates/core_types/src/entry/mod.rs +++ b/crates/core_types/src/entry/mod.rs @@ -24,9 +24,10 @@ use holochain_json_api::{ error::{JsonError, JsonResult}, json::{JsonString, RawString}, }; +use holochain_json_derive::DefaultJson; use holochain_persistence_api::cas::content::{Address, AddressableContent, Content}; use multihash::Hash; -use serde::{ser::SerializeTuple, Deserialize, Deserializer, Serializer}; +use serde::{ser::SerializeTuple, Deserialize, Deserializer, Serialize, Serializer}; use snowflake; use std::convert::TryFrom; diff --git a/crates/core_types/src/error/dna_error.rs b/crates/core_types/src/error/dna_error.rs index 889fa79ec3..b024b8879c 100644 --- a/crates/core_types/src/error/dna_error.rs +++ b/crates/core_types/src/error/dna_error.rs @@ -1,3 +1,4 @@ +use serde::{Deserialize, Serialize}; use std::{error::Error, fmt}; #[derive(Clone, Debug, PartialEq, Hash, Eq, Serialize, Deserialize, PartialOrd, Ord)] diff --git a/crates/core_types/src/error/mod.rs b/crates/core_types/src/error/mod.rs index 0ca2500451..f89f564d10 100644 --- a/crates/core_types/src/error/mod.rs +++ b/crates/core_types/src/error/mod.rs @@ -11,9 +11,11 @@ use holochain_json_api::{ error::{JsonError, JsonResult}, json::*, }; +use holochain_json_derive::DefaultJson; use holochain_locksmith::LocksmithError; use holochain_persistence_api::{error::PersistenceError, hash::HashString}; use lib3h_crypto_api::CryptoError; +use serde::{Deserialize, Serialize}; use serde_json::Error as SerdeError; use std::{ diff --git a/crates/core_types/src/error/ribosome_error.rs b/crates/core_types/src/error/ribosome_error.rs index 0978e7df05..56048ff412 100644 --- a/crates/core_types/src/error/ribosome_error.rs +++ b/crates/core_types/src/error/ribosome_error.rs @@ -1,6 +1,7 @@ use self::{RibosomeEncodedValue::*, RibosomeErrorCode::*}; use crate::error::HolochainError; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; use crate::bits_n_pieces::u64_split_bits; use serde::{Deserialize, Deserializer, Serialize, Serializer}; diff --git a/crates/core_types/src/hdk_version.rs b/crates/core_types/src/hdk_version.rs index 7e9c1a9ed3..9c1e50f2a1 100644 --- a/crates/core_types/src/hdk_version.rs +++ b/crates/core_types/src/hdk_version.rs @@ -1,4 +1,5 @@ use crate::error::{HcResult, HolochainError}; +use lazy_static::lazy_static; lazy_static! { pub static ref HDK_VERSION: HDKVersion = { diff --git a/crates/core_types/src/lib.rs b/crates/core_types/src/lib.rs index 29a26c2eff..c471a868ba 100644 --- a/crates/core_types/src/lib.rs +++ b/crates/core_types/src/lib.rs @@ -5,40 +5,16 @@ //! crates, but that don't include Holochain itself. #![feature(try_trait)] #![feature(never_type)] -#![warn(unused_extern_crates)] - -#[macro_use] -extern crate lazy_static; - -#[macro_use] -extern crate serde_json; -#[macro_use] -extern crate serde_derive; - -// #[macro_use] extern crate shrinkwraprs; -#[macro_use] -extern crate holochain_json_derive; - -#[cfg(test)] -#[macro_use] -extern crate maplit; -// #[macro_use] -// extern crate shrinkwraprs; - -#[macro_use] -extern crate log; +pub mod agent; +pub mod bits_n_pieces; pub mod chain_header; +pub mod chain_migrate; pub mod crud_status; +pub mod dna; pub mod eav; pub mod entry; pub mod error; -#[macro_use] -extern crate objekt; -pub mod agent; -pub mod bits_n_pieces; -pub mod chain_migrate; -pub mod dna; pub mod hdk_version; pub mod link; pub mod network; @@ -46,8 +22,6 @@ pub mod signature; pub mod time; pub mod ugly; pub mod validation; -#[macro_use] -extern crate holochain_logging; pub const HDK_HASH: &str = env!( "HDK_HASH", diff --git a/crates/core_types/src/link/link_data.rs b/crates/core_types/src/link/link_data.rs index 9629ff1b01..b0dcf237f5 100644 --- a/crates/core_types/src/link/link_data.rs +++ b/crates/core_types/src/link/link_data.rs @@ -4,7 +4,9 @@ use crate::{ link::{example_link, Link, LinkActionKind}, }; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; use holochain_persistence_api::cas::content::Address; +use serde::{Deserialize, Serialize}; //------------------------------------------------------------------------------------------------- // LinkData diff --git a/crates/core_types/src/link/link_list.rs b/crates/core_types/src/link/link_list.rs index ad54943fc2..1c0a792445 100644 --- a/crates/core_types/src/link/link_list.rs +++ b/crates/core_types/src/link/link_list.rs @@ -1,5 +1,7 @@ use crate::link::Link; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; //------------------------------------------------------------------------------------------------- // LinkList diff --git a/crates/core_types/src/link/mod.rs b/crates/core_types/src/link/mod.rs index d4c1bcc1da..90a9bc6e7a 100644 --- a/crates/core_types/src/link/mod.rs +++ b/crates/core_types/src/link/mod.rs @@ -6,7 +6,9 @@ pub mod link_data; pub mod link_list; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; use holochain_persistence_api::cas::content::Address; +use serde::{Deserialize, Serialize}; use crate::{ agent::AgentId, diff --git a/crates/core_types/src/network/entry_aspect.rs b/crates/core_types/src/network/entry_aspect.rs index 907a6411f5..d6786a566c 100644 --- a/crates/core_types/src/network/entry_aspect.rs +++ b/crates/core_types/src/network/entry_aspect.rs @@ -1,6 +1,8 @@ use crate::{chain_header::ChainHeader, entry::Entry, link::link_data::LinkData}; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; use holochain_persistence_api::cas::content::{Address, AddressableContent, Content}; +use serde::{Deserialize, Serialize}; use std::{ convert::{Into, TryFrom}, fmt, diff --git a/crates/core_types/src/network/query.rs b/crates/core_types/src/network/query.rs index bba1b4dc73..5403786266 100644 --- a/crates/core_types/src/network/query.rs +++ b/crates/core_types/src/network/query.rs @@ -1,6 +1,8 @@ use crate::{chain_header::ChainHeader, crud_status::CrudStatus, entry::EntryWithMetaAndHeader}; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; use holochain_persistence_api::{cas::content::Address, eav::Value}; +use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, PartialEq, DefaultJson, Clone)] pub struct GetLinksQueryConfiguration { diff --git a/crates/core_types/src/signature.rs b/crates/core_types/src/signature.rs index 7efdb810d0..5c59b2a8ac 100644 --- a/crates/core_types/src/signature.rs +++ b/crates/core_types/src/signature.rs @@ -2,7 +2,9 @@ //! a way of providing cryptographically verifiable proof of a given agent //! as having been the author of a given data entry. +use holochain_json_derive::DefaultJson; use holochain_persistence_api::cas::content::Address; +use serde::{Deserialize, Serialize}; use holochain_json_api::{error::JsonError, json::JsonString}; diff --git a/crates/core_types/src/time.rs b/crates/core_types/src/time.rs index 4173e43ba1..4d787f128d 100644 --- a/crates/core_types/src/time.rs +++ b/crates/core_types/src/time.rs @@ -4,6 +4,8 @@ use crate::error::HolochainError; use chrono::{offset::FixedOffset, DateTime, TimeZone}; use holochain_json_api::{error::JsonError, json::JsonString}; +use holochain_json_derive::DefaultJson; +use lazy_static::lazy_static; use regex::Regex; use serde::{de, Deserialize, Deserializer, Serialize, Serializer}; diff --git a/crates/core_types/src/validation.rs b/crates/core_types/src/validation.rs index 5544ae2afb..f563fc818a 100644 --- a/crates/core_types/src/validation.rs +++ b/crates/core_types/src/validation.rs @@ -11,6 +11,8 @@ use crate::{ error::HolochainError, link::link_data::LinkData, }; +use holochain_json_derive::DefaultJson; +use serde::{Deserialize, Serialize}; use holochain_json_api::{error::JsonError, json::JsonString}; use holochain_persistence_api::cas::content::Address; From e2cac7bdc8da5bfde5771f5cf76a221592ccdbe0 Mon Sep 17 00:00:00 2001 From: timotree3 Date: Sun, 22 Dec 2019 11:43:37 -0500 Subject: [PATCH 3/4] core_types: Update to 2018 edition idioms --- crates/core_types/src/dna/wasm.rs | 6 +++--- crates/core_types/src/eav/eavi.rs | 2 +- crates/core_types/src/eav/storage.rs | 4 ++-- crates/core_types/src/entry/entry_type.rs | 2 +- crates/core_types/src/error/dna_error.rs | 2 +- crates/core_types/src/error/mod.rs | 4 ++-- crates/core_types/src/network/entry_aspect.rs | 2 +- crates/core_types/src/time.rs | 6 +++--- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/crates/core_types/src/dna/wasm.rs b/crates/core_types/src/dna/wasm.rs index 6cea6b8605..3ec7bb83d2 100644 --- a/crates/core_types/src/dna/wasm.rs +++ b/crates/core_types/src/dna/wasm.rs @@ -42,7 +42,7 @@ impl Deref for ModuleArc { } } impl fmt::Debug for ModuleArc { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "ModuleMutex") } } @@ -68,7 +68,7 @@ where type Value = Vec; /// we only want to accept strings - fn expecting(&self, formatter: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + fn expecting(&self, formatter: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { formatter.write_str("string") } @@ -123,7 +123,7 @@ fn empty_module() -> Arc>> { } impl fmt::Debug for DnaWasm { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "<<>>") } } diff --git a/crates/core_types/src/eav/eavi.rs b/crates/core_types/src/eav/eavi.rs index ee26375076..a326785d2e 100644 --- a/crates/core_types/src/eav/eavi.rs +++ b/crates/core_types/src/eav/eavi.rs @@ -74,7 +74,7 @@ impl From for HolochainError { } impl fmt::Display for Attribute { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Attribute::CrudStatus => write!(f, "crud-status"), Attribute::CrudLink => write!(f, "crud-link"), diff --git a/crates/core_types/src/eav/storage.rs b/crates/core_types/src/eav/storage.rs index 3238573f0f..6164ca07ea 100644 --- a/crates/core_types/src/eav/storage.rs +++ b/crates/core_types/src/eav/storage.rs @@ -27,7 +27,7 @@ pub trait EntityAttributeValueStorage: objekt::Clone + Send + Sync + Debug { /// - Some(Value) = requires the given value (e.g. all entities referencing an Address) fn fetch_eavi( &self, - query: &EaviQuery, + query: &EaviQuery<'_>, ) -> Result, HolochainError>; // @TODO: would like to do this, but can't because of the generic type param @@ -62,7 +62,7 @@ impl EntityAttributeValueStorage for ExampleEntityAttributeValueStorage { fn fetch_eavi( &self, - query: &EaviQuery, + query: &EaviQuery<'_>, ) -> Result, HolochainError> { let lock = self.storage.read()?; let set = (*lock).clone(); diff --git a/crates/core_types/src/entry/entry_type.rs b/crates/core_types/src/entry/entry_type.rs index f9eec79120..d5aaef69e7 100644 --- a/crates/core_types/src/entry/entry_type.rs +++ b/crates/core_types/src/entry/entry_type.rs @@ -155,7 +155,7 @@ impl From<&'static str> for EntryType { } impl Display for EntryType { - fn fmt(&self, f: &mut Formatter) -> FmtResult { + fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult { write!(f, "{}", String::from(self.to_owned())) } } diff --git a/crates/core_types/src/error/dna_error.rs b/crates/core_types/src/error/dna_error.rs index b024b8879c..5b9acdc011 100644 --- a/crates/core_types/src/error/dna_error.rs +++ b/crates/core_types/src/error/dna_error.rs @@ -11,7 +11,7 @@ pub enum DnaError { impl Error for DnaError {} impl fmt::Display for DnaError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let msg = match self { DnaError::ZomeNotFound(err_msg) => err_msg, DnaError::TraitNotFound(err_msg) => err_msg, diff --git a/crates/core_types/src/error/mod.rs b/crates/core_types/src/error/mod.rs index f89f564d10..26d9fce290 100644 --- a/crates/core_types/src/error/mod.rs +++ b/crates/core_types/src/error/mod.rs @@ -79,7 +79,7 @@ impl ::std::convert::TryFrom for CoreError { } impl fmt::Display for CoreError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!( f, "Holochain Core error: {}\n --> {}:{}\n", @@ -137,7 +137,7 @@ impl From for HolochainError { } impl fmt::Display for HolochainError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { ErrorGeneric(err_msg) => write!(f, "{}", err_msg), CryptoError(crypto_error) => write!(f, "{}", crypto_error), diff --git a/crates/core_types/src/network/entry_aspect.rs b/crates/core_types/src/network/entry_aspect.rs index d6786a566c..c759c20edd 100644 --- a/crates/core_types/src/network/entry_aspect.rs +++ b/crates/core_types/src/network/entry_aspect.rs @@ -108,7 +108,7 @@ fn format_header(header: &ChainHeader) -> String { ) } impl fmt::Debug for EntryAspect { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { EntryAspect::Content(entry, header) => write!( f, diff --git a/crates/core_types/src/time.rs b/crates/core_types/src/time.rs index 4d787f128d..418401202a 100644 --- a/crates/core_types/src/time.rs +++ b/crates/core_types/src/time.rs @@ -99,13 +99,13 @@ const MN: u64 = 60_u64; /// Outputs the human-readable form of the Period's Duration, eg. "1y2w3d4h56m7.89s", "456ms". /// Debug output of Period specifier instead of underlying Duration seconds. impl fmt::Debug for Period { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "Period({})", self) } } impl fmt::Display for Period { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let secs = self.0.as_secs(); let years = secs / YR; if years > 0 { @@ -568,7 +568,7 @@ impl<'d> Deserialize<'d> for Iso8601 { /// Outputs the canonicalized ISO 8601 / RFC 3339 form for a valid timestamp. impl fmt::Display for Iso8601 { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}", self.0.to_rfc3339()) } } From 575c3488d25c3eb598d6174b9dcc24495b22504d Mon Sep 17 00:00:00 2001 From: timotree3 Date: Sun, 22 Dec 2019 16:13:59 -0500 Subject: [PATCH 4/4] core_types: Replace `serde_derive` dependency with feature `derive` of `serde` --- Cargo.lock | 1 - crates/core_types/Cargo.toml | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d3b98814c1..3c6b235087 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1335,7 +1335,6 @@ dependencies = [ "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rust-base58 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "snowflake 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/crates/core_types/Cargo.toml b/crates/core_types/Cargo.toml index 44083d7f72..5ca0401e4f 100644 --- a/crates/core_types/Cargo.toml +++ b/crates/core_types/Cargo.toml @@ -17,8 +17,7 @@ arrayref = "=0.3.5" base64 = "=0.10.1" backtrace = "=0.3.27" chrono = "=0.4.6" -serde = "=1.0.89" -serde_derive = "=1.0.89" +serde = { version = "=1.0.89", features = ["derive"] } serde_json = { version = "=1.0.39", features = ["preserve_order"] } lazy_static = "=1.2.0" multihash = "=0.8.0"