@@ -103,10 +103,10 @@ pub trait Validator<A, E, T>: Sized {
103
103
/// # Examples
104
104
/// ```
105
105
/// 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]) );
110
110
/// ```
111
111
fn fuse < A1 > ( self , other : Valid < A1 , E , T > ) -> Fusion < ( A , A1 ) , E , T > {
112
112
Fusion ( self . zip ( other) )
@@ -247,7 +247,7 @@ impl<A, E, T> Valid<A, E, T> {
247
247
///
248
248
/// # Examples
249
249
/// ```
250
- /// use tailcall_valid::Valid;
250
+ /// use tailcall_valid::{ Valid, Validator} ;
251
251
/// let result: Valid<(), i32, ()> = Valid::fail(1);
252
252
/// assert!(result.is_fail());
253
253
/// ```
@@ -262,7 +262,7 @@ impl<A, E, T> Valid<A, E, T> {
262
262
///
263
263
/// # Examples
264
264
/// ```
265
- /// use tailcall_valid::Valid;
265
+ /// use tailcall_valid::{ Valid, Validator} ;
266
266
/// let result = Valid::<(), &str, &str>::fail_at("error", "context");
267
267
/// assert!(result.is_fail());
268
268
/// ```
@@ -278,7 +278,7 @@ impl<A, E, T> Valid<A, E, T> {
278
278
///
279
279
/// # Examples
280
280
/// ```
281
- /// use tailcall_valid::Valid;
281
+ /// use tailcall_valid::{ Valid, Validator} ;
282
282
/// let result = Valid::<i32, (), ()>::succeed(42);
283
283
/// assert!(result.is_succeed());
284
284
/// ```
@@ -291,13 +291,13 @@ impl<A, E, T> Valid<A, E, T> {
291
291
///
292
292
/// # Examples
293
293
/// ```
294
- /// use tailcall_valid::Valid;
294
+ /// use tailcall_valid::{ Valid, Validator} ;
295
295
/// let numbers = vec![1, 2, 3];
296
296
/// let result = Valid::from_iter(numbers, |n| {
297
297
/// if n % 2 == 0 {
298
- /// Valid::succeed(n * 2)
298
+ /// Valid::<i32, String, ()>:: succeed(n * 2)
299
299
/// } else {
300
- /// Valid::fail(format!("{} is odd", n))
300
+ /// Valid::<i32, String, ()>:: fail(format!("{} is odd", n))
301
301
/// }
302
302
/// });
303
303
/// ```
@@ -327,14 +327,14 @@ impl<A, E, T> Valid<A, E, T> {
327
327
///
328
328
/// # Examples
329
329
/// ```
330
- /// use tailcall_valid::Valid;
330
+ /// use tailcall_valid::{ Valid, Validator} ;
331
331
/// 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");
333
333
/// assert_eq!(result, Valid::succeed(42));
334
334
///
335
335
/// 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( ));
338
338
/// ```
339
339
pub fn from_option ( option : Option < A > , e : E ) -> Valid < A , E , T > {
340
340
match option {
@@ -364,7 +364,7 @@ impl<A, E, T> From<Cause<E, T>> for Valid<A, E, T> {
364
364
///
365
365
/// # Examples
366
366
/// ```
367
- /// use tailcall_valid::{Valid, Cause};
367
+ /// use tailcall_valid::{Valid, Validator, Cause};
368
368
/// let cause = Cause::new("error");
369
369
/// let result: Valid<(), &str, ()> = Valid::from(cause);
370
370
/// assert!(result.is_fail());
@@ -379,7 +379,7 @@ impl<A, E, T> From<Vec<Cause<E, T>>> for Valid<A, E, T> {
379
379
///
380
380
/// # Examples
381
381
/// ```
382
- /// use tailcall_valid::{Valid, Cause};
382
+ /// use tailcall_valid::{Valid, Validator, Cause};
383
383
/// let causes = vec![Cause::new("error1"), Cause::new("error2")];
384
384
/// let result: Valid<(), &str, ()> = Valid::from(causes);
385
385
/// assert!(result.is_fail());
@@ -415,10 +415,11 @@ impl<A, E, T> Fusion<A, E, T> {
415
415
/// # Examples
416
416
/// ```
417
417
/// 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]));
422
423
/// ```
423
424
pub fn fuse < A1 > ( self , other : Valid < A1 , E , T > ) -> Fusion < A :: Out , E , T >
424
425
where
@@ -445,7 +446,7 @@ impl<A, E, T> From<Result<A, Cause<E, T>>> for Valid<A, E, T> {
445
446
///
446
447
/// # Examples
447
448
/// ```
448
- /// use tailcall_valid::{Valid, Cause};
449
+ /// use tailcall_valid::{Valid, Validator, Cause};
449
450
/// let ok_result: Result<i32, Cause<&str, ()>> = Ok(42);
450
451
/// let valid = Valid::from(ok_result);
451
452
/// assert_eq!(valid, Valid::succeed(42));
@@ -471,11 +472,11 @@ impl<A, E, T> From<Fusion<A, E, T>> for Valid<A, E, T> {
471
472
/// # Examples
472
473
/// ```
473
474
/// 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]);
476
477
/// 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( ));
479
480
/// ```
480
481
fn from ( value : Fusion < A , E , T > ) -> Self {
481
482
Valid ( value. to_result ( ) )
0 commit comments