@@ -103,10 +103,10 @@ pub trait Validator<A, E, T>: Sized {
103103 /// # Examples
104104 /// ```
105105 /// use tailcall_valid::{Valid, Validator};
106- /// let v1 = Valid::succeed(vec![1]);
107- /// let v2 = Valid::succeed(vec![2 ]);
108- /// let result = v1.fuse(v2).to_result().unwrap() ;
109- /// assert_eq!(result, vec![1, 2]);
106+ /// let v1: Valid<Vec<i32>, (), ()> = Valid::succeed(vec![1, 2 ]);
107+ /// let v2: Valid<Vec<i32>, (), ()> = Valid::succeed(vec![3, 4 ]);
108+ /// let result = v1.fuse(v2);
109+ /// assert_eq!(result.to_result().unwrap(), ( vec![1, 2], vec![3, 4]) );
110110 /// ```
111111 fn fuse < A1 > ( self , other : Valid < A1 , E , T > ) -> Fusion < ( A , A1 ) , E , T > {
112112 Fusion ( self . zip ( other) )
@@ -247,7 +247,7 @@ impl<A, E, T> Valid<A, E, T> {
247247 ///
248248 /// # Examples
249249 /// ```
250- /// use tailcall_valid::Valid;
250+ /// use tailcall_valid::{ Valid, Validator} ;
251251 /// let result: Valid<(), i32, ()> = Valid::fail(1);
252252 /// assert!(result.is_fail());
253253 /// ```
@@ -262,7 +262,7 @@ impl<A, E, T> Valid<A, E, T> {
262262 ///
263263 /// # Examples
264264 /// ```
265- /// use tailcall_valid::Valid;
265+ /// use tailcall_valid::{ Valid, Validator} ;
266266 /// let result = Valid::<(), &str, &str>::fail_at("error", "context");
267267 /// assert!(result.is_fail());
268268 /// ```
@@ -278,7 +278,7 @@ impl<A, E, T> Valid<A, E, T> {
278278 ///
279279 /// # Examples
280280 /// ```
281- /// use tailcall_valid::Valid;
281+ /// use tailcall_valid::{ Valid, Validator} ;
282282 /// let result = Valid::<i32, (), ()>::succeed(42);
283283 /// assert!(result.is_succeed());
284284 /// ```
@@ -291,13 +291,13 @@ impl<A, E, T> Valid<A, E, T> {
291291 ///
292292 /// # Examples
293293 /// ```
294- /// use tailcall_valid::Valid;
294+ /// use tailcall_valid::{ Valid, Validator} ;
295295 /// let numbers = vec![1, 2, 3];
296296 /// let result = Valid::from_iter(numbers, |n| {
297297 /// if n % 2 == 0 {
298- /// Valid::succeed(n * 2)
298+ /// Valid::<i32, String, ()>:: succeed(n * 2)
299299 /// } else {
300- /// Valid::fail(format!("{} is odd", n))
300+ /// Valid::<i32, String, ()>:: fail(format!("{} is odd", n))
301301 /// }
302302 /// });
303303 /// ```
@@ -327,14 +327,14 @@ impl<A, E, T> Valid<A, E, T> {
327327 ///
328328 /// # Examples
329329 /// ```
330- /// use tailcall_valid::Valid;
330+ /// use tailcall_valid::{ Valid, Validator} ;
331331 /// let some_value = Some(42);
332- /// let result = Valid::from_option(some_value, "error");
332+ /// let result: Valid<i32, &str, ()> = Valid::from_option(some_value, "error");
333333 /// assert_eq!(result, Valid::succeed(42));
334334 ///
335335 /// let none_value: Option<i32> = None;
336- /// let result = Valid::from_option(none_value, "error");
337- /// assert_eq !(result, Valid::fail("error" ));
336+ /// let result: Valid<i32, &str, ()> = Valid::from_option(none_value, "error");
337+ /// assert !(result.is_fail( ));
338338 /// ```
339339 pub fn from_option ( option : Option < A > , e : E ) -> Valid < A , E , T > {
340340 match option {
@@ -364,7 +364,7 @@ impl<A, E, T> From<Cause<E, T>> for Valid<A, E, T> {
364364 ///
365365 /// # Examples
366366 /// ```
367- /// use tailcall_valid::{Valid, Cause};
367+ /// use tailcall_valid::{Valid, Validator, Cause};
368368 /// let cause = Cause::new("error");
369369 /// let result: Valid<(), &str, ()> = Valid::from(cause);
370370 /// assert!(result.is_fail());
@@ -379,7 +379,7 @@ impl<A, E, T> From<Vec<Cause<E, T>>> for Valid<A, E, T> {
379379 ///
380380 /// # Examples
381381 /// ```
382- /// use tailcall_valid::{Valid, Cause};
382+ /// use tailcall_valid::{Valid, Validator, Cause};
383383 /// let causes = vec![Cause::new("error1"), Cause::new("error2")];
384384 /// let result: Valid<(), &str, ()> = Valid::from(causes);
385385 /// assert!(result.is_fail());
@@ -415,10 +415,11 @@ impl<A, E, T> Fusion<A, E, T> {
415415 /// # Examples
416416 /// ```
417417 /// use tailcall_valid::{Valid, Validator};
418- /// let v1 = Valid::succeed(vec![1, 2]);
419- /// let v2 = Valid::succeed(vec![3, 4]);
420- /// let result = v1.fuse(v2).to_result().unwrap();
421- /// assert_eq!(result, vec![1, 2, 3, 4]);
418+ /// let v1: Valid<Vec<i32>, (), ()> = Valid::succeed(vec![1, 2]);
419+ /// let v2: Valid<Vec<i32>, (), ()> = Valid::succeed(vec![3, 4]);
420+ /// let fusion = v1.fuse(v2);
421+ /// let result = fusion.to_result().unwrap();
422+ /// assert_eq!(result, (vec![1, 2], vec![3, 4]));
422423 /// ```
423424 pub fn fuse < A1 > ( self , other : Valid < A1 , E , T > ) -> Fusion < A :: Out , E , T >
424425 where
@@ -445,7 +446,7 @@ impl<A, E, T> From<Result<A, Cause<E, T>>> for Valid<A, E, T> {
445446 ///
446447 /// # Examples
447448 /// ```
448- /// use tailcall_valid::{Valid, Cause};
449+ /// use tailcall_valid::{Valid, Validator, Cause};
449450 /// let ok_result: Result<i32, Cause<&str, ()>> = Ok(42);
450451 /// let valid = Valid::from(ok_result);
451452 /// assert_eq!(valid, Valid::succeed(42));
@@ -471,11 +472,11 @@ impl<A, E, T> From<Fusion<A, E, T>> for Valid<A, E, T> {
471472 /// # Examples
472473 /// ```
473474 /// use tailcall_valid::{Valid, Validator};
474- /// let v1 = Valid::succeed(vec![1]);
475- /// let v2 = Valid::succeed(vec![2]);
475+ /// let v1: Valid<Vec<i32>, (), ()> = Valid::succeed(vec![1]);
476+ /// let v2: Valid<Vec<i32>, (), ()> = Valid::succeed(vec![2]);
476477 /// let fusion = v1.fuse(v2);
477- /// let result: Valid<Vec<i32>, (), ()> = Valid::from(fusion);
478- /// assert_eq !(result, Valid::succeed(vec![1, 2] ));
478+ /// let result: Valid<( Vec<i32>, Vec<i32>) , (), ()> = Valid::from(fusion);
479+ /// assert !(result.is_succeed( ));
479480 /// ```
480481 fn from ( value : Fusion < A , E , T > ) -> Self {
481482 Valid ( value. to_result ( ) )
0 commit comments