Skip to content

Commit 5ba9b72

Browse files
committed
Add 'routing' and remove 'serde-json' and 'serde-wasm-bindgen' features
1 parent afdeef4 commit 5ba9b72

File tree

21 files changed

+41
-138
lines changed

21 files changed

+41
-138
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
- [BREAKING] removed `md!` macro (use an external crate + `El::from_html`)
1212
- [BREAKING] removed `cookies()` function (use an external crate like [cookie](https://docs.rs/cookie/))
1313
- [BREAKING] removed `panic-hook` feature (use [`console_error_panic_hook`](https://docs.rs/console_error_panic_hook))
14+
- [BREAKING] removed `serde-json` and `serde-wasm-bindgen` features
15+
- [BREAKING] added `routing` feature
1416

1517
## v0.9.2
1618

Cargo.lock

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ wasm-bindgen-futures = "0.4.34"
7777

7878
# Optional dependencies
7979
serde = { version = "1.0.152", features = ['derive'], optional = true }
80-
serde_json = { version = "1.0.93", optional = true }
8180
serde-wasm-bindgen = { version = "0.4.5", optional = true }
8281

8382
[dependencies.web-sys]
@@ -158,14 +157,11 @@ features = [
158157
]
159158

160159
[features]
161-
default = ["serde-json"]
162-
serde-json = ["dep:serde", "dep:serde_json", "wasm-bindgen/serde-serialize"]
163-
serde-wasm-bindgen = ["dep:serde", "dep:serde-wasm-bindgen"]
160+
default = []
161+
routing = ["dep:serde", "dep:serde-wasm-bindgen"]
164162

165163
[build-dependencies]
166164
version_check = "0.9.4"
167165

168166
[dev-dependencies]
169-
serde_json = "1.0.93"
170-
serde-wasm-bindgen = "0.4.5"
171167
wasm-bindgen-test = "0.3.34"

examples/auth/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ crate-type = ["cdylib"]
1111
gloo-console = "0.2.3"
1212
gloo-net = "0.2.6"
1313
gloo-storage = "0.2.2"
14-
seed = {path = "../../"}
14+
seed = { path = "../../", features = ["routing"] }
1515
serde = "1.0.152"

examples/e2e_encryption/Cargo.lock

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/pages/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ edition = "2018"
88
crate-type = ["cdylib"]
99

1010
[dependencies]
11-
seed = {path = "../../"}
11+
seed = { path = "../../", features = ["routing"] }

examples/pages_hash_routing/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ edition = "2018"
88
crate-type = ["cdylib"]
99

1010
[dependencies]
11-
seed = {path = "../../"}
11+
seed = { path = "../../", features = ["routing"] }

examples/pages_keep_state/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ edition = "2018"
88
crate-type = ["cdylib"]
99

1010
[dependencies]
11-
seed = {path = "../../"}
11+
seed = { path = "../../", features = ["routing"] }

examples/server_integration/Cargo.lock

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/subscribe/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ edition = "2018"
88
crate-type = ["cdylib"]
99

1010
[dependencies]
11-
seed = {path = "../../"}
11+
seed = { path = "../../", features = ["routing"] }
1212
itertools = "0.10.5"
1313
futures = "0.3.26"
1414
gloo-console = "0.2.3"

examples/todomvc/Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ edition = "2018"
88
crate-type = ["cdylib"]
99

1010
[dependencies]
11-
seed = { path = "../../" }
12-
serde = "1.0.152"
11+
seed = { path = "../../", features = ["routing"] }
12+
serde = { version = "1.0.152", features = ["derive"] }
1313
uuid = { version = "1.3.0", features = ["serde", "v4"] }
1414
indexmap = { version = "1.9.2", features = ["serde-1"] }
1515
enclose = "1.1.8"
1616
gloo-storage = "0.2.2"
17+
serde_json = "1.0.94"

examples/unsaved_changes/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ crate-type = ["cdylib"]
1010
[dependencies]
1111
gloo-console = "0.2.3"
1212
gloo-storage = "0.2.2"
13-
seed = {path = "../../"}
13+
seed = { path = "../../", features = ["routing"] }

examples/url/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ crate-type = ["cdylib"]
99

1010
[dependencies]
1111
gloo-console = "0.2.3"
12-
seed = {path = "../../"}
12+
seed = { path = "../../", features = ["routing"] }

src/app.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![allow(clippy::module_name_repetitions)]
22

33
use crate::browser::dom::virtual_dom_bridge;
4-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
4+
#[cfg(feature = "routing")]
55
use crate::browser::service::routing;
66
use crate::browser::{
77
util::{self, window},
@@ -31,7 +31,7 @@ pub mod render_info;
3131
pub mod stream_manager;
3232
pub mod streams;
3333
pub mod sub_manager;
34-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
34+
#[cfg(feature = "routing")]
3535
pub mod subs;
3636

3737
pub use cfg::AppCfg;
@@ -196,14 +196,14 @@ where
196196
&mut orders,
197197
);
198198
app.data.model.replace(Some(new_model));
199-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
199+
#[cfg(feature = "routing")]
200200
app.setup_routing(&mut orders);
201201
app.process_effect_queue(orders.effects);
202202
app.rerender_vdom();
203203
app
204204
}
205205

206-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
206+
#[cfg(feature = "routing")]
207207
fn setup_routing(&self, orders: &mut impl Orders<Ms>) {
208208
use enclose::enc;
209209
routing::setup_popstate_listener(

src/app/orders.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
2-
use super::subs;
31
use super::{App, CmdHandle, RenderInfo, StreamHandle, SubHandle};
4-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
5-
use crate::browser::Url;
62
use crate::virtual_dom::IntoNodes;
73
use futures::stream::Stream;
84
use std::{any::Any, future::Future, rc::Rc};
95

6+
#[cfg(feature = "routing")]
7+
use super::subs;
8+
#[cfg(feature = "routing")]
9+
use crate::browser::Url;
10+
1011
// @TODO: Add links to doc comment once https://github.com/rust-lang/rust/issues/43466 is resolved
1112
// or use nightly rustdoc. Applicable to the entire code base.
1213

@@ -323,7 +324,7 @@ pub trait Orders<Ms: 'static> {
323324
/// Simulate `<a href="[url]">` element click.
324325
///
325326
/// A thin wrapper for `orders.notify(subs::UrlRequested::new(url))`
326-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
327+
#[cfg(feature = "routing")]
327328
fn request_url(&mut self, url: Url) -> &mut Self {
328329
self.notify(subs::UrlRequested::new(url))
329330
}

src/browser.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ pub mod service;
33
pub mod url;
44
pub mod util;
55

6-
#[cfg(any(feature = "serde-wasm-bindgen", feature = "serde-json"))]
6+
#[cfg(feature = "routing")]
77
mod json;
88

99
pub use url::{Url, UrlSearch, DUMMY_BASE_URL};

src/browser/json.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@ pub struct Error(JsValue);
66

77
type Result<T> = std::result::Result<T, Error>;
88

9-
#[cfg(feature = "serde-wasm-bindgen")]
9+
#[cfg(feature = "routing")]
1010
mod swb;
11-
#[cfg(feature = "serde-wasm-bindgen")]
11+
#[cfg(feature = "routing")]
1212
pub use swb::*;
13-
14-
#[cfg(all(not(feature = "serde-wasm-bindgen"), feature = "serde-json"))]
15-
mod serde_json;
16-
#[cfg(all(not(feature = "serde-wasm-bindgen"), feature = "serde-json"))]
17-
pub use self::serde_json::*;

src/browser/service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
1+
#[cfg(feature = "routing")]
22
pub(crate) mod routing;

src/browser/url.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
2-
use crate::browser::json;
31
use crate::browser::util;
4-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
5-
use serde::{Deserialize, Serialize};
62
use std::{borrow::Cow, collections::BTreeMap, fmt, str::FromStr};
73
use wasm_bindgen::JsValue;
84

5+
#[cfg(feature = "routing")]
6+
use crate::browser::json;
7+
#[cfg(feature = "routing")]
8+
use serde::{Deserialize, Serialize};
9+
910
pub const DUMMY_BASE_URL: &str = "http://example.com";
1011

1112
// ------ Url ------
@@ -19,10 +20,7 @@ pub const DUMMY_BASE_URL: &str = "http://example.com";
1920
///
2021
/// (If the features above are problems for you, create an [issue](https://github.com/seed-rs/seed/issues/new))
2122
#[derive(Clone, Debug, Default, PartialEq, Eq)]
22-
#[cfg_attr(
23-
any(feature = "serde-json", feature = "serde-wasm-bindgen"),
24-
derive(Serialize, Deserialize)
25-
)]
23+
#[cfg_attr(feature = "routing", derive(Serialize, Deserialize))]
2624
pub struct Url {
2725
next_path_part_index: usize,
2826
next_hash_path_part_index: usize,
@@ -45,7 +43,7 @@ impl Url {
4543
///
4644
/// # References
4745
/// * [MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/History_API)
48-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
46+
#[cfg(feature = "routing")]
4947
pub fn go_and_push(&self) {
5048
// We use data to evaluate the path instead of the path displayed in the url.
5149
let data: JsValue = json::to_js_value(self).expect("Problem serializing route data");
@@ -62,7 +60,7 @@ impl Url {
6260
/// # References
6361
/// * [MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/History_API)
6462
65-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
63+
#[cfg(feature = "routing")]
6664
pub fn go_and_replace(&self) {
6765
// We use data to evaluate the path instead of the path displayed in the url.
6866
let data: JsValue = json::to_js_value(self).expect("Problem serializing route data");
@@ -616,10 +614,7 @@ impl From<&web_sys::Url> for Url {
616614

617615
#[allow(clippy::module_name_repetitions)]
618616
#[derive(Default, Debug, Clone, PartialEq, Eq)]
619-
#[cfg_attr(
620-
any(feature = "serde-json", feature = "serde-wasm-bindgen"),
621-
derive(Serialize, Deserialize)
622-
)]
617+
#[cfg_attr(feature = "routing", derive(Serialize, Deserialize))]
623618
pub struct UrlSearch {
624619
search: BTreeMap<String, Vec<String>>,
625620
invalid_components: Vec<String>,

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ pub fn set_timeout(handler: Box<dyn Fn()>, timeout: i32) {
169169
/// for element-creation macros, input event constructors, and the `History` struct.
170170
/// Expose the `wasm_bindgen` prelude.
171171
pub mod prelude {
172-
#[cfg(any(feature = "serde-json", feature = "serde-wasm-bindgen"))]
172+
#[cfg(feature = "routing")]
173173
pub use crate::app::subs;
174174
pub use crate::{
175175
app::{

0 commit comments

Comments
 (0)