Skip to content

Commit 1db7651

Browse files
committed
Replace isize with i32 or u32 as representations for enums.
1 parent 71ab433 commit 1db7651

File tree

3 files changed

+18
-18
lines changed

3 files changed

+18
-18
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ serde = { version = "1", features = ["derive"] }
133133
nix = { version = "0.26", default-features = false }
134134
cfg-if = "1"
135135
redis-module-macros-internals = { path = "./redismodule-rs-macros-internals" }
136+
strum = {version = "0.27.2",features = ["derive"]}
136137
log = "0.4"
137138

138139
[dev-dependencies]

build.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,13 @@ impl ParseCallbacks for RedisModuleCallback {
1212
fn int_macro(&self, name: &str, _value: i64) -> Option<IntKind> {
1313
if name.starts_with("REDISMODULE_SUBEVENT_") || name.starts_with("REDISMODULE_EVENT_") {
1414
Some(IntKind::U64)
15-
} else if name.starts_with("REDISMODULE_REPLY_")
16-
|| name.starts_with("REDISMODULE_KEYTYPE_")
17-
|| name.starts_with("REDISMODULE_AUX_")
18-
|| name == "REDISMODULE_OK"
19-
|| name == "REDISMODULE_ERR"
20-
|| name == "REDISMODULE_LIST_HEAD"
21-
|| name == "REDISMODULE_LIST_TAIL"
22-
{
23-
// These values are used as `enum` discriminants, and thus must be `isize`.
24-
Some(IntKind::Custom {
25-
name: "isize",
26-
is_signed: true,
27-
})
15+
} else if name == "REPLY_TYPE"
16+
|| name.starts_with("REDISMODULE_REPLY_") {
17+
// These values are used as `enum` discriminants, and thus must be `isize`.
18+
Some(IntKind::Custom {
19+
name: "i32",
20+
is_signed: true,
21+
})
2822
} else if name.starts_with("REDISMODULE_NOTIFY_") {
2923
Some(IntKind::Int)
3024
} else {

src/raw.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ bitflags! {
4040
}
4141
}
4242

43-
#[derive(Primitive, Debug, PartialEq, Eq)]
43+
#[repr(u32)]
44+
#[derive(Primitive, Debug, PartialEq, Eq, strum::FromRepr)]
4445
pub enum KeyType {
4546
Empty = REDISMODULE_KEYTYPE_EMPTY,
4647
String = REDISMODULE_KEYTYPE_STRING,
@@ -58,13 +59,15 @@ impl From<c_int> for KeyType {
5859
}
5960
}
6061

61-
#[derive(Primitive, Debug, PartialEq, Eq)]
62+
#[repr(u32)]
63+
#[derive(Primitive, Debug, PartialEq, Eq, strum::FromRepr)]
6264
pub enum Where {
6365
ListHead = REDISMODULE_LIST_HEAD,
6466
ListTail = REDISMODULE_LIST_TAIL,
6567
}
6668

67-
#[derive(Primitive, Debug, PartialEq, Eq)]
69+
#[repr(i32)]
70+
#[derive(Primitive, Debug, PartialEq, Eq, strum::FromRepr)]
6871
pub enum ReplyType {
6972
Unknown = REDISMODULE_REPLY_UNKNOWN,
7073
String = REDISMODULE_REPLY_STRING,
@@ -86,13 +89,15 @@ impl From<c_int> for ReplyType {
8689
}
8790
}
8891

89-
#[derive(Primitive, Debug, PartialEq, Eq)]
92+
#[repr(u32)]
93+
#[derive(Primitive, Debug, PartialEq, Eq, strum::FromRepr)]
9094
pub enum Aux {
9195
Before = REDISMODULE_AUX_BEFORE_RDB,
9296
After = REDISMODULE_AUX_AFTER_RDB,
9397
}
9498

95-
#[derive(Primitive, Debug, PartialEq, Eq)]
99+
#[repr(u32)]
100+
#[derive(Primitive, Debug, PartialEq, Eq, strum::FromRepr)]
96101
pub enum Status {
97102
Ok = REDISMODULE_OK,
98103
Err = REDISMODULE_ERR,

0 commit comments

Comments
 (0)