Skip to content

Commit 5647360

Browse files
committed
refactor: make user key optional, add stable_rollout function
1 parent 97e3ee7 commit 5647360

File tree

9 files changed

+129
-107
lines changed

9 files changed

+129
-107
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
edition = "2021"
33
name = "feature-probe-server-sdk"
4-
version = "1.1.1"
4+
version = "1.2.1"
55
license = "Apache-2.0"
66
authors = ["maintain@featureprobe.com"]
77
description = "FeatureProbe Server Side SDK for Rust"
@@ -43,11 +43,16 @@ thiserror = "1.0"
4343
tracing = "0.1"
4444
url = "2"
4545

46-
feature-probe-event-std = { optional = true, version = "1.1.2", package="feature-probe-event" }
47-
feature-probe-event-tokio = { optional = true, version = "1.1.2", features=["use_tokio"], default-features=false, package="feature-probe-event" }
46+
feature-probe-event-std = { optional = true, version = "1.1.2", package = "feature-probe-event" }
47+
feature-probe-event-tokio = { optional = true, version = "1.1.2", features = [
48+
"use_tokio",
49+
], default-features = false, package = "feature-probe-event" }
4850

49-
reqwest = { optional = true, version = "0.11", default-features = false, features = ["rustls-tls", "json"] }
50-
tokio = {optional = true, version = "1", features = ["full"]}
51+
reqwest = { optional = true, version = "0.11", default-features = false, features = [
52+
"rustls-tls",
53+
"json",
54+
] }
55+
tokio = { optional = true, version = "1", features = ["full"] }
5156
ureq = { optional = true, version = "2.4" }
5257

5358
[dev-dependencies]
@@ -60,4 +65,3 @@ rusty-hook = "^0.11.2"
6065
tokio = { version = "1", features = ["full"] }
6166
tracing-subscriber = "0.3"
6267
feature-probe-server = "1.2.1"
63-

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,7 @@ fn main() {
8585
You can use sdk to check which variation a particular user will receive for a given feature flag.
8686

8787
```rust
88-
let user_id = /* unique user id in your business logic */
89-
let user = FPUser::new(user_id).with("name", "bob");
88+
let user = FPUser::new().with("name", "bob");
9089
let show_feature = fp.bool_value("bool_toggle", &user, false);
9190

9291
if show_feature {
@@ -102,7 +101,7 @@ You could do unit testing for each variation:
102101

103102
```rust
104103
let fp = FeatureProbe::new_for_test("toggle_1", Value::Bool(false));
105-
let u = FPUser::new("key");
104+
let u = FPUser::new();
106105
assert_eq!(fp.bool_value("toggle_1", &u, true), false);
107106

108107
let mut toggles: HashMap<String, Value> = HashMap::new();

benches/bench.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ fn criterion_benchmark(c: &mut Criterion) {
2222
path.push("resources/fixtures/repo.json");
2323
let json_str = fs::read_to_string(path).unwrap();
2424
let repo = load_json(&json_str).unwrap();
25-
let user_default = FPUser::new("key11");
26-
let user_hit = FPUser::new("key11").with("city", "1");
25+
let user_default = FPUser::new();
26+
let user_hit = FPUser::new().with("city", "1");
2727
let fp = FeatureProbe::new_with("secret key".to_string(), repo);
2828

2929
c.bench_function("bench_bool_toggle_defualt", |b| {

examples/demo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ async fn main() {
3030
}
3131
};
3232

33-
let user = FPUser::new("unique user key");
33+
let user = FPUser::new();
3434
let enable = fp.bool_value("campaign_enable", &user, false);
3535
println!("Result => campaign_enable : {:?}", enable);
3636

0 commit comments

Comments
 (0)