aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-20 17:05:59 +0000
committerFuwn <[email protected]>2021-05-20 17:05:59 +0000
commit9dbc613765de8ab7dfa8e1374cf6661dcfd56bc8 (patch)
tree8cfff6a23bb72db2660e68c63a8cf9d0539a061f
parentfeat(readme): add sqlfluff as a dev dep (diff)
downloadwhirl-9dbc613765de8ab7dfa8e1374cf6661dcfd56bc8.tar.xz
whirl-9dbc613765de8ab7dfa8e1374cf6661dcfd56bc8.zip
refactor(global): move crates around, stricter module isolation
-rw-r--r--.github/workflows/rust.yml10
-rw-r--r--Cargo.toml10
-rw-r--r--crates/whirl/.license_template (renamed from whirl/.license_template)0
-rw-r--r--crates/whirl/Cargo.toml (renamed from whirl/Cargo.toml)9
-rw-r--r--crates/whirl/src/cli.rs (renamed from whirl/src/cli.rs)0
-rw-r--r--crates/whirl/src/lib.rs (renamed from whirl/src/lib.rs)8
-rw-r--r--crates/whirl/src/main.rs (renamed from whirl/src/main.rs)0
-rw-r--r--crates/whirl/src/subs.rs (renamed from whirl/src/subs.rs)3
-rw-r--r--crates/whirl/src/whirl.rs (renamed from whirl/src/whirl.rs)4
-rw-r--r--crates/whirl_api/Cargo.toml30
-rw-r--r--crates/whirl_api/src/lib.rs (renamed from whirl/src/api/mod.rs)15
-rw-r--r--crates/whirl_api/src/routes/mod.rs (renamed from whirl/src/api/routes/mod.rs)0
-rw-r--r--crates/whirl_api/src/routes/stats/mod.rs (renamed from whirl/src/api/routes/stats/mod.rs)6
-rw-r--r--crates/whirl_api/src/routes/stats/structures.rs (renamed from whirl/src/api/routes/stats/structures.rs)0
-rw-r--r--crates/whirl_common/Cargo.toml18
-rw-r--r--crates/whirl_common/src/lib.rs16
-rw-r--r--crates/whirl_common/src/log.rs (renamed from whirl/src/utils/log.rs)0
-rw-r--r--crates/whirl_common/src/sort.rs (renamed from whirl/src/utils/sort.rs)0
-rw-r--r--crates/whirl_common/src/system.rs (renamed from whirl/src/utils/system.rs)0
-rw-r--r--crates/whirl_config/.license_template (renamed from whirl_config/.license_template)0
-rw-r--r--crates/whirl_config/Cargo.toml (renamed from whirl_config/Cargo.toml)2
-rw-r--r--crates/whirl_config/Whirl.default.toml (renamed from whirl_config/Whirl.default.toml)0
-rw-r--r--crates/whirl_config/src/lib.rs (renamed from whirl_config/src/lib.rs)0
-rw-r--r--crates/whirl_config/src/structures.rs (renamed from whirl_config/src/structures.rs)0
-rw-r--r--crates/whirl_db/Cargo.toml22
-rw-r--r--crates/whirl_db/src/lib.rs (renamed from whirl/src/db/mod.rs)15
-rw-r--r--crates/whirl_db/src/models.rs (renamed from whirl/src/db/models.rs)0
-rw-r--r--crates/whirl_db/src/schema.rs (renamed from whirl/src/db/schema.rs)0
-rw-r--r--crates/whirl_prompt/.license_template (renamed from whirl_prompt/.license_template)0
-rw-r--r--crates/whirl_prompt/Cargo.toml (renamed from whirl_prompt/Cargo.toml)2
-rw-r--r--crates/whirl_prompt/src/builtins/mod.rs (renamed from whirl_prompt/src/builtins/mod.rs)0
-rw-r--r--crates/whirl_prompt/src/builtins/structures.rs (renamed from whirl_prompt/src/builtins/structures.rs)0
-rw-r--r--crates/whirl_prompt/src/constants.rs (renamed from whirl_prompt/src/constants.rs)0
-rw-r--r--crates/whirl_prompt/src/lib.rs (renamed from whirl_prompt/src/lib.rs)0
-rw-r--r--crates/whirl_prompt/src/structure.rs (renamed from whirl_prompt/src/structure.rs)0
-rw-r--r--crates/whirl_server/.license_template (renamed from whirl_server/.license_template)0
-rw-r--r--crates/whirl_server/Cargo.toml (renamed from whirl_server/Cargo.toml)2
-rw-r--r--crates/whirl_server/src/cmd/commands/action.rs (renamed from whirl_server/src/cmd/commands/action.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/buddy_list.rs (renamed from whirl_server/src/cmd/commands/buddy_list.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/mod.rs (renamed from whirl_server/src/cmd/commands/mod.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/property/create.rs (renamed from whirl_server/src/cmd/commands/property/create.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/property/mod.rs (renamed from whirl_server/src/cmd/commands/property/mod.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/property/parse.rs (renamed from whirl_server/src/cmd/commands/property/parse.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/redirect_id.rs (renamed from whirl_server/src/cmd/commands/redirect_id.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/room_id_request.rs (renamed from whirl_server/src/cmd/commands/room_id_request.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/subscribe_distance.rs (renamed from whirl_server/src/cmd/commands/subscribe_distance.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/subscribe_room.rs (renamed from whirl_server/src/cmd/commands/subscribe_room.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/teleport.rs (renamed from whirl_server/src/cmd/commands/teleport.rs)0
-rw-r--r--crates/whirl_server/src/cmd/commands/text.rs (renamed from whirl_server/src/cmd/commands/text.rs)0
-rw-r--r--crates/whirl_server/src/cmd/constants.rs (renamed from whirl_server/src/cmd/constants.rs)0
-rw-r--r--crates/whirl_server/src/cmd/extendable.rs (renamed from whirl_server/src/cmd/extendable.rs)0
-rw-r--r--crates/whirl_server/src/cmd/mod.rs (renamed from whirl_server/src/cmd/mod.rs)0
-rw-r--r--crates/whirl_server/src/cmd/set_parser.rs (renamed from whirl_server/src/cmd/set_parser.rs)0
-rw-r--r--crates/whirl_server/src/cmd/structure.rs (renamed from whirl_server/src/cmd/structure.rs)0
-rw-r--r--crates/whirl_server/src/distributor.rs (renamed from whirl_server/src/distributor.rs)0
-rw-r--r--crates/whirl_server/src/hub.rs (renamed from whirl_server/src/hub.rs)0
-rw-r--r--crates/whirl_server/src/interaction/mod.rs (renamed from whirl_server/src/interaction/mod.rs)0
-rw-r--r--crates/whirl_server/src/interaction/peer.rs (renamed from whirl_server/src/interaction/peer.rs)0
-rw-r--r--crates/whirl_server/src/interaction/shared.rs (renamed from whirl_server/src/interaction/shared.rs)0
-rw-r--r--crates/whirl_server/src/lib.rs (renamed from whirl_server/src/lib.rs)0
-rw-r--r--crates/whirl_server/src/net/constants.rs (renamed from whirl_server/src/net/constants.rs)0
-rw-r--r--crates/whirl_server/src/net/converter.rs (renamed from whirl_server/src/net/converter.rs)0
-rw-r--r--crates/whirl_server/src/net/mod.rs (renamed from whirl_server/src/net/mod.rs)0
-rw-r--r--crates/whirl_server/src/net/property_parser.rs (renamed from whirl_server/src/net/property_parser.rs)0
-rw-r--r--crates/whirl_server/src/net/structure.rs (renamed from whirl_server/src/net/structure.rs)0
-rw-r--r--crates/whirl_server/src/packet_parser.rs (renamed from whirl_server/src/packet_parser.rs)0
-rw-r--r--crates/whirl_server/src/types.rs (renamed from whirl_server/src/types.rs)0
-rw-r--r--diesel.toml2
-rw-r--r--rustfmt.toml2
-rw-r--r--whirl/src/utils/mod.rs6
70 files changed, 140 insertions, 42 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index dcfba87..5ada3b2 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -3,16 +3,10 @@ name: Rust ✅
on:
push:
paths:
- - "whirl/**"
- - "whirl_config/**"
- - "whirl_prompt/**"
- - "whirl_server/**"
+ - "crates/**"
pull_request:
paths:
- - "whirl/**"
- - "whirl_config/**"
- - "whirl_prompt/**"
- - "whirl_server/**"
+ - "crates/**"
env:
CARGO_TERM_COLOR: always
diff --git a/Cargo.toml b/Cargo.toml
index b77f983..744e523 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,13 @@
[workspace]
-members = ["whirl_config", "whirl", "whirl_prompt", "whirl_server"]
+members = [
+ "crates/whirl",
+ "crates/whirl_api",
+ "crates/whirl_common",
+ "crates/whirl_config",
+ "crates/whirl_db",
+ "crates/whirl_prompt",
+ "crates/whirl_server"
+]
[profile.release]
lto = "fat"
diff --git a/whirl/.license_template b/crates/whirl/.license_template
index 1fda769..1fda769 100644
--- a/whirl/.license_template
+++ b/crates/whirl/.license_template
diff --git a/whirl/Cargo.toml b/crates/whirl/Cargo.toml
index 2d13bfb..730309b 100644
--- a/whirl/Cargo.toml
+++ b/crates/whirl/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Fuwn <[email protected]>"]
edition = "2018"
description = "Whirl, an open-source WorldServer implementation in Rust."
documentation = "https://whirlsplash.org/docs/"
-readme = "../README.rst"
+readme = "../../README.rst"
homepage = "https://whirlsplash.org"
repository = "https://github.com/Whirlsplash/whirl"
license = "GPL-3.0-only"
@@ -29,6 +29,7 @@ human-panic = "1.0.3"
rand = "0.8.3"
async-trait = "0.1.50"
sysinfo = "0.17.5"
+whirl_common = { path = "../whirl_common" }
# Byte Manipulation
bytes = "1.0.1"
@@ -49,13 +50,10 @@ tokio = { version = "1.6.0", features = ["full"] }
tokio-util = { version = "0.6.7", features = ["codec"] }
tokio-stream = "0.1.6"
-# Database
-libsqlite3-sys = { version = "0.9.1", features = ["bundled"] }
-diesel = { version = "1.4.6", features = ["sqlite"] }
-
# Web-server
actix-web = { version = "3.3.2", features = ["rustls"] }
actix-cors = "0.5.4"
+whirl_api = { path = "../whirl_api" }
# Prompt
whirl_prompt = { path = "../whirl_prompt" }
@@ -69,4 +67,3 @@ mimalloc = { version = "0.1.25", default-features = false }
[target.'cfg(unix)'.dependencies]
jemallocator = "0.3.2"
-
diff --git a/whirl/src/cli.rs b/crates/whirl/src/cli.rs
index 82d18c1..82d18c1 100644
--- a/whirl/src/cli.rs
+++ b/crates/whirl/src/cli.rs
diff --git a/whirl/src/lib.rs b/crates/whirl/src/lib.rs
index 5c7da0b..9ef177c 100644
--- a/whirl/src/lib.rs
+++ b/crates/whirl/src/lib.rs
@@ -13,10 +13,6 @@
#[macro_use]
extern crate log;
-#[macro_use]
-extern crate diesel;
-#[macro_use]
-extern crate serde_derive;
// #[macro_use]
// extern crate simple_error;
@@ -31,7 +27,3 @@ static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc;
pub mod cli;
pub mod subs;
pub mod whirl;
-
-pub mod api;
-pub mod db;
-pub mod utils;
diff --git a/whirl/src/main.rs b/crates/whirl/src/main.rs
index 074ca69..074ca69 100644
--- a/whirl/src/main.rs
+++ b/crates/whirl/src/main.rs
diff --git a/whirl/src/subs.rs b/crates/whirl/src/subs.rs
index 36b00a5..08da4d6 100644
--- a/whirl/src/subs.rs
+++ b/crates/whirl/src/subs.rs
@@ -1,6 +1,7 @@
// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
// SPDX-License-Identifier: GPL-3.0-only
+use whirl_api::Api;
use whirl_config::Config;
use whirl_prompt::Prompt;
use whirl_server::{
@@ -10,8 +11,6 @@ use whirl_server::{
ServerType::{AutoServer, RoomServer},
};
-use crate::api::Api;
-
pub async fn run() {
let (tx, _rx) = std::sync::mpsc::channel();
diff --git a/whirl/src/whirl.rs b/crates/whirl/src/whirl.rs
index 88772f6..451d79f 100644
--- a/whirl/src/whirl.rs
+++ b/crates/whirl/src/whirl.rs
@@ -3,7 +3,9 @@
use std::error::Error;
-use crate::{cli::Cli, utils::log::calculate_log_level};
+use whirl_common::log::calculate_log_level;
+
+use crate::cli::Cli;
pub struct Whirl;
impl Whirl {
diff --git a/crates/whirl_api/Cargo.toml b/crates/whirl_api/Cargo.toml
new file mode 100644
index 0000000..7687b42
--- /dev/null
+++ b/crates/whirl_api/Cargo.toml
@@ -0,0 +1,30 @@
+[package]
+name = "whirl_api"
+version = "0.1.0"
+authors = ["Fuwn <[email protected]>"]
+edition = "2018"
+description = "Whirl, an open-source WorldServer implementation in Rust."
+documentation = "https://whirlsplash.org/docs/"
+readme = "../../README.rst"
+homepage = "https://whirlsplash.org"
+repository = "https://github.com/Whirlsplash/whirl"
+license = "GPL-3.0-only"
+# license-file = "LICENSE"
+keywords = ["rust", "worldserver", "whirl", "whirlsplash"]
+publish = false
+
+[dependencies]
+# Web-server
+actix-web = { version = "3.3.2", features = ["rustls"] }
+actix-cors = "0.5.4"
+
+# Utility
+sysinfo = "0.17.5"
+whirl_common = { path = "../whirl_common" }
+
+# Serialization
+serde = "1.0.126"
+serde_derive = "1.0.126"
+
+# Logging
+log = "0.4.14"
diff --git a/whirl/src/api/mod.rs b/crates/whirl_api/src/lib.rs
index c744f3d..e77e7d3 100644
--- a/whirl/src/api/mod.rs
+++ b/crates/whirl_api/src/lib.rs
@@ -1,6 +1,21 @@
// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
// SPDX-License-Identifier: GPL-3.0-only
+#![feature(
+ type_ascription,
+ hash_set_entry,
+ type_name_of_val,
+ decl_macro,
+ proc_macro_hygiene
+)]
+#![warn(rust_2018_idioms)]
+#![recursion_limit = "128"]
+
+#[macro_use]
+extern crate log;
+#[macro_use]
+extern crate serde_derive;
+
use actix_web::web::resource;
mod routes;
diff --git a/whirl/src/api/routes/mod.rs b/crates/whirl_api/src/routes/mod.rs
index f5a2ff4..f5a2ff4 100644
--- a/whirl/src/api/routes/mod.rs
+++ b/crates/whirl_api/src/routes/mod.rs
diff --git a/whirl/src/api/routes/stats/mod.rs b/crates/whirl_api/src/routes/stats/mod.rs
index 04ce5e6..d5d0937 100644
--- a/whirl/src/api/routes/stats/mod.rs
+++ b/crates/whirl_api/src/routes/stats/mod.rs
@@ -5,11 +5,9 @@ pub mod structures;
use actix_web::HttpResponse;
use sysinfo::{get_current_pid, ProcessExt, System, SystemExt};
+use whirl_common::system::seconds_to_hrtime;
-use crate::{
- api::routes::stats::structures::{Statistics, StatisticsProcess, StatisticsSystem},
- utils::system::seconds_to_hrtime,
-};
+use crate::routes::stats::structures::{Statistics, StatisticsProcess, StatisticsSystem};
// This is mostly for developmental testing, it consumes more CPU than it's
// worth.
diff --git a/whirl/src/api/routes/stats/structures.rs b/crates/whirl_api/src/routes/stats/structures.rs
index 88fc852..88fc852 100644
--- a/whirl/src/api/routes/stats/structures.rs
+++ b/crates/whirl_api/src/routes/stats/structures.rs
diff --git a/crates/whirl_common/Cargo.toml b/crates/whirl_common/Cargo.toml
new file mode 100644
index 0000000..aea1c8f
--- /dev/null
+++ b/crates/whirl_common/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+name = "whirl_common"
+version = "0.1.0"
+authors = ["Fuwn <[email protected]>"]
+edition = "2018"
+description = "Whirl, an open-source WorldServer implementation in Rust."
+documentation = "https://whirlsplash.org/docs/"
+readme = "../../README.rst"
+homepage = "https://whirlsplash.org"
+repository = "https://github.com/Whirlsplash/whirl"
+license = "GPL-3.0-only"
+# license-file = "LICENSE"
+keywords = ["rust", "worldserver", "whirl", "whirlsplash"]
+publish = false
+
+[dependencies]
+# Config
+whirl_config = { path = "../whirl_config" }
diff --git a/crates/whirl_common/src/lib.rs b/crates/whirl_common/src/lib.rs
new file mode 100644
index 0000000..05a0e0c
--- /dev/null
+++ b/crates/whirl_common/src/lib.rs
@@ -0,0 +1,16 @@
+// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
+// SPDX-License-Identifier: GPL-3.0-only
+
+#![feature(
+ type_ascription,
+ hash_set_entry,
+ type_name_of_val,
+ decl_macro,
+ proc_macro_hygiene
+)]
+#![warn(rust_2018_idioms)]
+#![recursion_limit = "128"]
+
+pub mod log;
+pub mod sort;
+pub mod system;
diff --git a/whirl/src/utils/log.rs b/crates/whirl_common/src/log.rs
index 39ceca0..39ceca0 100644
--- a/whirl/src/utils/log.rs
+++ b/crates/whirl_common/src/log.rs
diff --git a/whirl/src/utils/sort.rs b/crates/whirl_common/src/sort.rs
index 131fa55..131fa55 100644
--- a/whirl/src/utils/sort.rs
+++ b/crates/whirl_common/src/sort.rs
diff --git a/whirl/src/utils/system.rs b/crates/whirl_common/src/system.rs
index 7a823a0..7a823a0 100644
--- a/whirl/src/utils/system.rs
+++ b/crates/whirl_common/src/system.rs
diff --git a/whirl_config/.license_template b/crates/whirl_config/.license_template
index 1fda769..1fda769 100644
--- a/whirl_config/.license_template
+++ b/crates/whirl_config/.license_template
diff --git a/whirl_config/Cargo.toml b/crates/whirl_config/Cargo.toml
index e66c7ce..64100d1 100644
--- a/whirl_config/Cargo.toml
+++ b/crates/whirl_config/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Fuwn <[email protected]>"]
edition = "2018"
description = "Whirl, an open-source WorldServer implementation in Rust."
documentation = "https://whirlsplash.org/docs/"
-readme = "../README.rst"
+readme = "../../README.rst"
homepage = "https://whirlsplash.org"
repository = "https://github.com/Whirlsplash/whirl"
license = "GPL-3.0-only"
diff --git a/whirl_config/Whirl.default.toml b/crates/whirl_config/Whirl.default.toml
index aa2d684..aa2d684 100644
--- a/whirl_config/Whirl.default.toml
+++ b/crates/whirl_config/Whirl.default.toml
diff --git a/whirl_config/src/lib.rs b/crates/whirl_config/src/lib.rs
index 8f312cd..8f312cd 100644
--- a/whirl_config/src/lib.rs
+++ b/crates/whirl_config/src/lib.rs
diff --git a/whirl_config/src/structures.rs b/crates/whirl_config/src/structures.rs
index 4f1d62e..4f1d62e 100644
--- a/whirl_config/src/structures.rs
+++ b/crates/whirl_config/src/structures.rs
diff --git a/crates/whirl_db/Cargo.toml b/crates/whirl_db/Cargo.toml
new file mode 100644
index 0000000..0e9bdf0
--- /dev/null
+++ b/crates/whirl_db/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+name = "whirl_db"
+version = "0.1.0"
+authors = ["Fuwn <[email protected]>"]
+edition = "2018"
+description = "Whirl, an open-source WorldServer implementation in Rust."
+documentation = "https://whirlsplash.org/docs/"
+readme = "../../README.rst"
+homepage = "https://whirlsplash.org"
+repository = "https://github.com/Whirlsplash/whirl"
+license = "GPL-3.0-only"
+# license-file = "LICENSE"
+keywords = ["rust", "worldserver", "whirl", "whirlsplash"]
+publish = false
+
+[dependencies]
+# Database
+libsqlite3-sys = { version = "0.9.1", features = ["bundled"] }
+diesel = { version = "1.4.6", features = ["sqlite"] }
+
+# Environment
+dotenv = "0.15.0"
diff --git a/whirl/src/db/mod.rs b/crates/whirl_db/src/lib.rs
index b93390d..35f05ae 100644
--- a/whirl/src/db/mod.rs
+++ b/crates/whirl_db/src/lib.rs
@@ -1,6 +1,19 @@
// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
// SPDX-License-Identifier: GPL-3.0-only
+#![feature(
+ type_ascription,
+ hash_set_entry,
+ type_name_of_val,
+ decl_macro,
+ proc_macro_hygiene
+)]
+#![warn(rust_2018_idioms)]
+#![recursion_limit = "128"]
+
+#[macro_use]
+extern crate diesel;
+
pub mod models;
mod schema;
@@ -19,7 +32,7 @@ pub fn establish_connection() -> SqliteConnection {
#[test]
#[ignore]
pub fn show_serials() {
- use crate::db::{models::SerialNumber, schema::serial_numbers::dsl::*};
+ use crate::{models::SerialNumber, schema::serial_numbers::dsl::*};
dotenv::dotenv().ok();
diff --git a/whirl/src/db/models.rs b/crates/whirl_db/src/models.rs
index 52304b6..52304b6 100644
--- a/whirl/src/db/models.rs
+++ b/crates/whirl_db/src/models.rs
diff --git a/whirl/src/db/schema.rs b/crates/whirl_db/src/schema.rs
index 6d58598..6d58598 100644
--- a/whirl/src/db/schema.rs
+++ b/crates/whirl_db/src/schema.rs
diff --git a/whirl_prompt/.license_template b/crates/whirl_prompt/.license_template
index 1fda769..1fda769 100644
--- a/whirl_prompt/.license_template
+++ b/crates/whirl_prompt/.license_template
diff --git a/whirl_prompt/Cargo.toml b/crates/whirl_prompt/Cargo.toml
index d778c7e..00abbcf 100644
--- a/whirl_prompt/Cargo.toml
+++ b/crates/whirl_prompt/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Fuwn <[email protected]>"]
edition = "2018"
description = "Whirl, an open-source WorldServer implementation in Rust."
documentation = "https://whirlsplash.org/docs/"
-readme = "../README.rst"
+readme = "../../README.rst"
homepage = "https://whirlsplash.org"
repository = "https://github.com/Whirlsplash/whirl"
license = "GPL-3.0-only"
diff --git a/whirl_prompt/src/builtins/mod.rs b/crates/whirl_prompt/src/builtins/mod.rs
index 0359443..0359443 100644
--- a/whirl_prompt/src/builtins/mod.rs
+++ b/crates/whirl_prompt/src/builtins/mod.rs
diff --git a/whirl_prompt/src/builtins/structures.rs b/crates/whirl_prompt/src/builtins/structures.rs
index 4217a38..4217a38 100644
--- a/whirl_prompt/src/builtins/structures.rs
+++ b/crates/whirl_prompt/src/builtins/structures.rs
diff --git a/whirl_prompt/src/constants.rs b/crates/whirl_prompt/src/constants.rs
index c173a57..c173a57 100644
--- a/whirl_prompt/src/constants.rs
+++ b/crates/whirl_prompt/src/constants.rs
diff --git a/whirl_prompt/src/lib.rs b/crates/whirl_prompt/src/lib.rs
index 32b247f..32b247f 100644
--- a/whirl_prompt/src/lib.rs
+++ b/crates/whirl_prompt/src/lib.rs
diff --git a/whirl_prompt/src/structure.rs b/crates/whirl_prompt/src/structure.rs
index 4603d37..4603d37 100644
--- a/whirl_prompt/src/structure.rs
+++ b/crates/whirl_prompt/src/structure.rs
diff --git a/whirl_server/.license_template b/crates/whirl_server/.license_template
index 1fda769..1fda769 100644
--- a/whirl_server/.license_template
+++ b/crates/whirl_server/.license_template
diff --git a/whirl_server/Cargo.toml b/crates/whirl_server/Cargo.toml
index da9214d..be88f2f 100644
--- a/whirl_server/Cargo.toml
+++ b/crates/whirl_server/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Fuwn <[email protected]>"]
edition = "2018"
description = "Whirl, an open-source WorldServer implementation in Rust."
documentation = "https://whirlsplash.org/docs/"
-readme = "../README.rst"
+readme = "../../README.rst"
homepage = "https://whirlsplash.org"
repository = "https://github.com/Whirlsplash/whirl"
license = "GPL-3.0-only"
diff --git a/whirl_server/src/cmd/commands/action.rs b/crates/whirl_server/src/cmd/commands/action.rs
index 8d1fb0b..8d1fb0b 100644
--- a/whirl_server/src/cmd/commands/action.rs
+++ b/crates/whirl_server/src/cmd/commands/action.rs
diff --git a/whirl_server/src/cmd/commands/buddy_list.rs b/crates/whirl_server/src/cmd/commands/buddy_list.rs
index 931db52..931db52 100644
--- a/whirl_server/src/cmd/commands/buddy_list.rs
+++ b/crates/whirl_server/src/cmd/commands/buddy_list.rs
diff --git a/whirl_server/src/cmd/commands/mod.rs b/crates/whirl_server/src/cmd/commands/mod.rs
index 49758c2..49758c2 100644
--- a/whirl_server/src/cmd/commands/mod.rs
+++ b/crates/whirl_server/src/cmd/commands/mod.rs
diff --git a/whirl_server/src/cmd/commands/property/create.rs b/crates/whirl_server/src/cmd/commands/property/create.rs
index 40ec2be..40ec2be 100644
--- a/whirl_server/src/cmd/commands/property/create.rs
+++ b/crates/whirl_server/src/cmd/commands/property/create.rs
diff --git a/whirl_server/src/cmd/commands/property/mod.rs b/crates/whirl_server/src/cmd/commands/property/mod.rs
index 83b015b..83b015b 100644
--- a/whirl_server/src/cmd/commands/property/mod.rs
+++ b/crates/whirl_server/src/cmd/commands/property/mod.rs
diff --git a/whirl_server/src/cmd/commands/property/parse.rs b/crates/whirl_server/src/cmd/commands/property/parse.rs
index 415d19f..415d19f 100644
--- a/whirl_server/src/cmd/commands/property/parse.rs
+++ b/crates/whirl_server/src/cmd/commands/property/parse.rs
diff --git a/whirl_server/src/cmd/commands/redirect_id.rs b/crates/whirl_server/src/cmd/commands/redirect_id.rs
index 8f56c86..8f56c86 100644
--- a/whirl_server/src/cmd/commands/redirect_id.rs
+++ b/crates/whirl_server/src/cmd/commands/redirect_id.rs
diff --git a/whirl_server/src/cmd/commands/room_id_request.rs b/crates/whirl_server/src/cmd/commands/room_id_request.rs
index cf507fa..cf507fa 100644
--- a/whirl_server/src/cmd/commands/room_id_request.rs
+++ b/crates/whirl_server/src/cmd/commands/room_id_request.rs
diff --git a/whirl_server/src/cmd/commands/subscribe_distance.rs b/crates/whirl_server/src/cmd/commands/subscribe_distance.rs
index d5cbcf6..d5cbcf6 100644
--- a/whirl_server/src/cmd/commands/subscribe_distance.rs
+++ b/crates/whirl_server/src/cmd/commands/subscribe_distance.rs
diff --git a/whirl_server/src/cmd/commands/subscribe_room.rs b/crates/whirl_server/src/cmd/commands/subscribe_room.rs
index 9e7d732..9e7d732 100644
--- a/whirl_server/src/cmd/commands/subscribe_room.rs
+++ b/crates/whirl_server/src/cmd/commands/subscribe_room.rs
diff --git a/whirl_server/src/cmd/commands/teleport.rs b/crates/whirl_server/src/cmd/commands/teleport.rs
index ef8f6b2..ef8f6b2 100644
--- a/whirl_server/src/cmd/commands/teleport.rs
+++ b/crates/whirl_server/src/cmd/commands/teleport.rs
diff --git a/whirl_server/src/cmd/commands/text.rs b/crates/whirl_server/src/cmd/commands/text.rs
index 2bf7e17..2bf7e17 100644
--- a/whirl_server/src/cmd/commands/text.rs
+++ b/crates/whirl_server/src/cmd/commands/text.rs
diff --git a/whirl_server/src/cmd/constants.rs b/crates/whirl_server/src/cmd/constants.rs
index 22d29c1..22d29c1 100644
--- a/whirl_server/src/cmd/constants.rs
+++ b/crates/whirl_server/src/cmd/constants.rs
diff --git a/whirl_server/src/cmd/extendable.rs b/crates/whirl_server/src/cmd/extendable.rs
index e6f3c2b..e6f3c2b 100644
--- a/whirl_server/src/cmd/extendable.rs
+++ b/crates/whirl_server/src/cmd/extendable.rs
diff --git a/whirl_server/src/cmd/mod.rs b/crates/whirl_server/src/cmd/mod.rs
index ef91de7..ef91de7 100644
--- a/whirl_server/src/cmd/mod.rs
+++ b/crates/whirl_server/src/cmd/mod.rs
diff --git a/whirl_server/src/cmd/set_parser.rs b/crates/whirl_server/src/cmd/set_parser.rs
index 9d6a4b3..9d6a4b3 100644
--- a/whirl_server/src/cmd/set_parser.rs
+++ b/crates/whirl_server/src/cmd/set_parser.rs
diff --git a/whirl_server/src/cmd/structure.rs b/crates/whirl_server/src/cmd/structure.rs
index 23e91ca..23e91ca 100644
--- a/whirl_server/src/cmd/structure.rs
+++ b/crates/whirl_server/src/cmd/structure.rs
diff --git a/whirl_server/src/distributor.rs b/crates/whirl_server/src/distributor.rs
index 22b698b..22b698b 100644
--- a/whirl_server/src/distributor.rs
+++ b/crates/whirl_server/src/distributor.rs
diff --git a/whirl_server/src/hub.rs b/crates/whirl_server/src/hub.rs
index 6de4bca..6de4bca 100644
--- a/whirl_server/src/hub.rs
+++ b/crates/whirl_server/src/hub.rs
diff --git a/whirl_server/src/interaction/mod.rs b/crates/whirl_server/src/interaction/mod.rs
index c85e09d..c85e09d 100644
--- a/whirl_server/src/interaction/mod.rs
+++ b/crates/whirl_server/src/interaction/mod.rs
diff --git a/whirl_server/src/interaction/peer.rs b/crates/whirl_server/src/interaction/peer.rs
index 38c02c5..38c02c5 100644
--- a/whirl_server/src/interaction/peer.rs
+++ b/crates/whirl_server/src/interaction/peer.rs
diff --git a/whirl_server/src/interaction/shared.rs b/crates/whirl_server/src/interaction/shared.rs
index c2ee671..c2ee671 100644
--- a/whirl_server/src/interaction/shared.rs
+++ b/crates/whirl_server/src/interaction/shared.rs
diff --git a/whirl_server/src/lib.rs b/crates/whirl_server/src/lib.rs
index 9c3e9d0..9c3e9d0 100644
--- a/whirl_server/src/lib.rs
+++ b/crates/whirl_server/src/lib.rs
diff --git a/whirl_server/src/net/constants.rs b/crates/whirl_server/src/net/constants.rs
index 169b461..169b461 100644
--- a/whirl_server/src/net/constants.rs
+++ b/crates/whirl_server/src/net/constants.rs
diff --git a/whirl_server/src/net/converter.rs b/crates/whirl_server/src/net/converter.rs
index c976dff..c976dff 100644
--- a/whirl_server/src/net/converter.rs
+++ b/crates/whirl_server/src/net/converter.rs
diff --git a/whirl_server/src/net/mod.rs b/crates/whirl_server/src/net/mod.rs
index afa45c8..afa45c8 100644
--- a/whirl_server/src/net/mod.rs
+++ b/crates/whirl_server/src/net/mod.rs
diff --git a/whirl_server/src/net/property_parser.rs b/crates/whirl_server/src/net/property_parser.rs
index f86b767..f86b767 100644
--- a/whirl_server/src/net/property_parser.rs
+++ b/crates/whirl_server/src/net/property_parser.rs
diff --git a/whirl_server/src/net/structure.rs b/crates/whirl_server/src/net/structure.rs
index 1fb1051..1fb1051 100644
--- a/whirl_server/src/net/structure.rs
+++ b/crates/whirl_server/src/net/structure.rs
diff --git a/whirl_server/src/packet_parser.rs b/crates/whirl_server/src/packet_parser.rs
index bfeba9e..bfeba9e 100644
--- a/whirl_server/src/packet_parser.rs
+++ b/crates/whirl_server/src/packet_parser.rs
diff --git a/whirl_server/src/types.rs b/crates/whirl_server/src/types.rs
index 3d49752..3d49752 100644
--- a/whirl_server/src/types.rs
+++ b/crates/whirl_server/src/types.rs
diff --git a/diesel.toml b/diesel.toml
index 6db2d37..489209e 100644
--- a/diesel.toml
+++ b/diesel.toml
@@ -2,4 +2,4 @@
# see diesel.rs/guides/configuring-diesel-cli
[print_schema]
-file = "whirl/src/db/schema.rs"
+file = "crates/whirl_db/src/schema.rs"
diff --git a/rustfmt.toml b/rustfmt.toml
index d2d6a2d..0e9396b 100644
--- a/rustfmt.toml
+++ b/rustfmt.toml
@@ -8,7 +8,7 @@ force_multiline_blocks = true
format_code_in_doc_comments = true
format_macro_matchers = true
format_strings = true
-ignore = ["whirl/src/db/schema.rs"]
+ignore = ["crates/whirl_db/src/schema.rs"]
imports_layout = "HorizontalVertical"
license_template_path = ".license_template"
match_arm_blocks = false
diff --git a/whirl/src/utils/mod.rs b/whirl/src/utils/mod.rs
deleted file mode 100644
index dc9a008..0000000
--- a/whirl/src/utils/mod.rs
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
-// SPDX-License-Identifier: GPL-3.0-only
-
-pub mod log;
-pub mod sort;
-pub mod system;