aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Prouillet2018-03-19 12:34:57 +0100
committerGitHub2018-03-19 12:34:57 +0100
commitcd635464c3f3033ea64f53ac1f6cb38a7e8c41fd (patch)
tree3613384d280a666e096ba880e667b638083beba4
parent6ce2d3a5264fb337d9a8b5f365fc98387baafa8a (diff)
parent8ca1fe94d779dcccf4b3f4c23a08f3ede7e10956 (diff)
downloadvalidator-cd635464c3f3033ea64f53ac1f6cb38a7e8c41fd.tar.bz2
Merge pull request #45 from Eijebong/fix_path_in_derive
Fix path parsing for custom validators
-rw-r--r--validator_derive/Cargo.toml2
-rw-r--r--validator_derive/src/quoting.rs2
-rw-r--r--validator_derive/tests/run-pass/custom.rs6
3 files changed, 8 insertions, 2 deletions
diff --git a/validator_derive/Cargo.toml b/validator_derive/Cargo.toml
index 00c7de7..9c0c67f 100644
--- a/validator_derive/Cargo.toml
+++ b/validator_derive/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "validator_derive"
-version = "0.6.2"
+version = "0.6.3"
authors = ["Vincent Prouillet <vincent@wearewizards.io>"]
license = "MIT"
description = "Macros 1.1 implementation of #[derive(Validate)]"
diff --git a/validator_derive/src/quoting.rs b/validator_derive/src/quoting.rs
index bf2a531..028e864 100644
--- a/validator_derive/src/quoting.rs
+++ b/validator_derive/src/quoting.rs
@@ -250,7 +250,7 @@ pub fn quote_custom_validation(field_quoter: &FieldQuoter, validation: &FieldVal
let validator_param = field_quoter.quote_validator_param();
if let Validator::Custom(ref fun) = validation.validator {
- let fn_ident = syn::Ident::from(fun.clone());
+ let fn_ident: syn::Path = syn::parse_str(fun).unwrap();
let add_message_quoted = if let Some(ref m) = validation.message {
quote!(err.message = Some(::std::borrow::Cow::from(#m));)
} else {
diff --git a/validator_derive/tests/run-pass/custom.rs b/validator_derive/tests/run-pass/custom.rs
index 3a2a396..dff6375 100644
--- a/validator_derive/tests/run-pass/custom.rs
+++ b/validator_derive/tests/run-pass/custom.rs
@@ -10,6 +10,12 @@ struct Test {
s: String,
}
+#[derive(Validate)]
+struct TestPath {
+ #[validate(custom = "::validate_something")]
+ s: String,
+}
+
fn validate_something(s: &str) -> Result<(), ValidationError> {
Ok(())
}