captcha-sdk 0.0.1

Unified server-side CAPTCHA verification for Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use std::{future::Future, pin::Pin};

use crate::{ProviderId, VerificationError, VerificationRequest, VerificationResult};

/// The boxed future returned by an object-safe [`CaptchaVerifier`].
pub type VerificationFuture<'a> =
    Pin<Box<dyn Future<Output = Result<VerificationResult, VerificationError>> + Send + 'a>>;

/// Provider-independent interface implemented by CAPTCHA adapters.
pub trait CaptchaVerifier: Send + Sync {
    /// Identifies the backing provider.
    fn provider(&self) -> &ProviderId;

    /// Verifies a client token and returns a normalized result.
    fn verify(&self, request: VerificationRequest) -> VerificationFuture<'_>;
}