Skip to content

Commit 5080020

Browse files
authored
✨ feat: prerequisite (#41)
* feat: prerequisite
1 parent 35f14f8 commit 5080020

File tree

10 files changed

+434
-320
lines changed

10 files changed

+434
-320
lines changed

.github/workflows/build-with-coverage.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ jobs:
2929
steps:
3030
- name: checkout repository
3131
uses: actions/checkout@v2
32+
with:
33+
submodules: recursive
3234

3335
- name: generate code coverage
3436
run: |

Cargo.lock

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

Cargo.toml

Lines changed: 7 additions & 13 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 = "2.0.1"
4+
version = "2.1.0"
55
license = "Apache-2.0"
66
authors = ["maintain@featureprobe.com"]
77
description = "FeatureProbe Server Side SDK for Rust"
@@ -17,12 +17,8 @@ harness = false
1717
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1818

1919
[features]
20-
default = ["use_std", "event"]
20+
default = ["realtime"]
2121
internal = []
22-
use_std = ["ureq"]
23-
event = ["feature-probe-event-std"]
24-
use_tokio = ["reqwest", "tokio", "futures-util"]
25-
event_tokio = ["feature-probe-event-tokio"]
2622
realtime = ["socketio-rs"]
2723

2824
[dependencies]
@@ -44,20 +40,18 @@ thiserror = "1.0"
4440
tracing = "0.1"
4541
url = "2"
4642

47-
feature-probe-event-std = { optional = true, version = "1.1.3", package = "feature-probe-event" }
48-
feature-probe-event-tokio = { optional = true, version = "1.1.3", features = [
43+
feature-probe-event = { version = "1.1.3", features = [
4944
"use_tokio",
50-
], default-features = false, package = "feature-probe-event" }
45+
], default-features = false}
5146

52-
reqwest = { optional = true, version = "0.11", default-features = false, features = [
47+
reqwest = { version = "0.11", default-features = false, features = [
5348
"rustls-tls",
5449
"json",
5550
] }
56-
tokio = { optional = true, version = "1", features = ["full"] }
57-
ureq = { optional = true, version = "2.4" }
51+
tokio = { version = "1", features = ["full"] }
5852

5953
socketio-rs = { optional = true, version = "0.1.7", default-features = false, features = ["client"] }
60-
futures-util = { optional = true, version = "0.3", default-features = false, features = [
54+
futures-util = { version = "0.3", default-features = false, features = [
6155
"sink",
6256
] }
6357

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,5 @@ release-test:
1212
cargo test --release --verbose --features async --no-default-features
1313
test:
1414
cargo test --verbose && \
15-
cargo test --verbose --features use_tokio --features internal --features event_tokio --no-default-features && \
16-
cargo test --verbose --features use_tokio --features internal --features event_tokio --features realtime --no-default-features
15+
cargo test --verbose --features internal --features realtime --no-default-features
1716

resources/fixtures/repo.json

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,152 @@
372372
"not_in": true
373373
}
374374
]
375+
},
376+
"prerequisite_toggle": {
377+
"key": "prerequisite_toggle",
378+
"enabled": true,
379+
"forClient": false,
380+
"version": 1,
381+
"disabledServe": {
382+
"select": 0
383+
},
384+
"defaultServe": {
385+
"select": 1
386+
},
387+
"rules": [
388+
{
389+
"serve": {
390+
"select": 2
391+
},
392+
"conditions": [
393+
{
394+
"type": "segment",
395+
"subject": "user",
396+
"predicate": "is in",
397+
"objects": [
398+
"some_segment1-fjoaefjaam"
399+
]
400+
}
401+
]
402+
}
403+
],
404+
"prerequisites": [
405+
{
406+
"key": "bool_toggle",
407+
"value": false
408+
},
409+
{
410+
"key": "string_toggle",
411+
"value": "2"
412+
},
413+
{
414+
"key": "number_toggle",
415+
"value": 2
416+
}
417+
],
418+
"variations": [
419+
{
420+
"0": "0"
421+
},
422+
{
423+
"1": "1"
424+
},
425+
{
426+
"2": "2"
427+
}
428+
]
429+
},
430+
"prerequisite_toggle_not_exist": {
431+
"key": "prerequisite_toggle_not_exist",
432+
"enabled": true,
433+
"forClient": false,
434+
"version": 1,
435+
"disabledServe": {
436+
"select": 0
437+
},
438+
"defaultServe": {
439+
"select": 1
440+
},
441+
"rules": [
442+
{
443+
"serve": {
444+
"select": 2
445+
},
446+
"conditions": [
447+
{
448+
"type": "segment",
449+
"subject": "user",
450+
"predicate": "is in",
451+
"objects": [
452+
"some_segment1-fjoaefjaam"
453+
]
454+
}
455+
]
456+
}
457+
],
458+
"prerequisites": [
459+
{
460+
"key": "bool_toggle_not_exist",
461+
"value": true
462+
}
463+
],
464+
"variations": [
465+
{
466+
"0": "0"
467+
},
468+
{
469+
"1": "1"
470+
},
471+
{
472+
"2": "2"
473+
}
474+
]
475+
},
476+
"prerequisite_toggle_not_match": {
477+
"key": "prerequisite_toggle_not_match",
478+
"enabled": true,
479+
"forClient": false,
480+
"version": 1,
481+
"disabledServe": {
482+
"select": 0
483+
},
484+
"defaultServe": {
485+
"select": 1
486+
},
487+
"rules": [
488+
{
489+
"serve": {
490+
"select": 2
491+
},
492+
"conditions": [
493+
{
494+
"type": "segment",
495+
"subject": "user",
496+
"predicate": "is in",
497+
"objects": [
498+
"some_segment1-fjoaefjaam"
499+
]
500+
}
501+
]
502+
}
503+
],
504+
"prerequisites": [
505+
{
506+
"key": "bool_toggle",
507+
"value": true
508+
}
509+
],
510+
"variations": [
511+
{
512+
"0": "0"
513+
},
514+
{
515+
"1": "1"
516+
},
517+
{
518+
"2": "2"
519+
}
520+
]
375521
}
376522
}
377523
}

0 commit comments

Comments
 (0)