aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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(())
}