diff options
-rw-r--r-- | license-generator/Cargo.lock | 4 | ||||
-rw-r--r-- | license-generator/Cargo.toml | 5 | ||||
-rw-r--r-- | license-generator/paddle/Cargo.toml | 5 | ||||
-rw-r--r-- | license-generator/paddle/src/lib.rs | 40 |
4 files changed, 53 insertions, 1 deletions
diff --git a/license-generator/Cargo.lock b/license-generator/Cargo.lock index cee7dd9..d615538 100644 --- a/license-generator/Cargo.lock +++ b/license-generator/Cargo.lock @@ -147,6 +147,10 @@ dependencies = [ ] [[package]] +name = "paddle" +version = "0.0.1" + +[[package]] name = "pkg-config" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/license-generator/Cargo.toml b/license-generator/Cargo.toml index 55d1a3f..99c9a3c 100644 --- a/license-generator/Cargo.toml +++ b/license-generator/Cargo.toml @@ -6,4 +6,7 @@ version = "0.0.1" fastcgi = "1.0.0" [workspace] -members = ["aquatic-prime"] +members = [ + "aquatic-prime", + "paddle", +] diff --git a/license-generator/paddle/Cargo.toml b/license-generator/paddle/Cargo.toml new file mode 100644 index 0000000..0a4f677 --- /dev/null +++ b/license-generator/paddle/Cargo.toml @@ -0,0 +1,5 @@ +[package] +name = "paddle" +version = "0.0.1" + +[dependencies] diff --git a/license-generator/paddle/src/lib.rs b/license-generator/paddle/src/lib.rs new file mode 100644 index 0000000..a1db417 --- /dev/null +++ b/license-generator/paddle/src/lib.rs @@ -0,0 +1,40 @@ +// https://paddle.com/docs/reference-verifying-webhooks/ +fn verify_signature<'a, I>(params: I) -> bool +where I: ExactSizeIterator<Item = (&'a str, &'a str)> { + false +} + +fn php_serialize<'a, I>(pairs: I) -> String +where I: ExactSizeIterator<Item = (&'a str, &'a str)> { + let mut serialized = String::with_capacity(500); + + serialized.push_str( + &format!("a:{pairs_count}:{{", pairs_count = pairs.len()) + ); + + for (key, value) in pairs { + serialized.push_str( + &format!( + "s:{key_length}:\"{key}\";s:{value_length}:\"{value}\";", + key_length = key.len(), + key = key, + value_length = value.len(), + value = value + ) + ); + } + + serialized.push_str("}"); + + serialized +} + + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn php_serialize_serializes_key_values_as_php_string() { + } +} |