1 unstable release

new 0.1.1 Feb 21, 2025

#820 in Text processing


Used in hpc

MulanPSL-2.0

6KB

hpc_captcha

use std::marker::PhantomData;

use aok::Result;

pub trait GenCaptcha {
  fn get() -> impl Future<Output = Result<Vec<u8>>> + Send;
}

pub struct Captcha<G: GenCaptcha> {
  exist: bool,
  _g: PhantomData<G>,
}

impl<G: GenCaptcha> Default for Captcha<G> {
  fn default() -> Self {
    Self::new()
  }
}

impl<G: GenCaptcha> Captcha<G> {
  pub fn new() -> Self {
    Captcha {
      exist: false,
      _g: PhantomData,
    }
  }

  pub async fn get(&mut self) -> Result<Vec<u8>> {
    if self.exist {
      return Ok(vec![]);
    }
    self.exist = true;
    G::get().await
  }
}

About

This project is an open-source component of i18n.site ⋅ Internationalization Solution.

关于

本项目为 i18n.site ⋅ 国际化解决方案 的开源组件。

Dependencies

~140KB