Skip to content

Commit

Permalink
crate::asyncsにdoc
Browse files Browse the repository at this point in the history
  • Loading branch information
qryxip committed Sep 10, 2024
1 parent 5cb2bcb commit ee7b593
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions crates/voicevox_core/src/asyncs.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
//! 非同期操作の実装の切り替えを行う。
//!
//! 「[ブロッキング版API]」と「[非同期版API]」との違いはここに集約される
//! …予定。現在は[`crate::voice_model`]のみで利用している。
//!
//! # Motivation
//!
//! [blocking]クレートで駆動する非同期処理はランタイムが無くても動作する。そのため非同期版APIを
//! もとにブロッキング版APIを構成することはできる。しかし将来WASMビルドすることを考えると、スレッド
//! がまともに扱えないため機能しなくなってしまう。そのためWASM化を見越したブロッキング版APIのため
//! に[`Unstoppable`]を用意している。
//!
//! [ブロッキング版API]: crate::blocking
//! [非同期版API]: crate::tokio
//! [blocking]: https://docs.rs/crate/blocking
use std::{
io::{self, Read as _, Seek as _, SeekFrom},
path::Path,
Expand All @@ -12,6 +28,10 @@ pub(crate) trait Async: 'static {
}

/// "async"としての責務を放棄し、すべてをブロックする。
///
/// [ブロッキング版API]用。
///
/// [ブロッキング版API]: crate::blocking
pub(crate) enum Unstoppable {}

impl Async for Unstoppable {
Expand Down Expand Up @@ -44,7 +64,10 @@ impl Async for Unstoppable {

/// [blocking]クレートで駆動する。
///
/// [非同期版API]用。
///
/// [blocking]: https://docs.rs/crate/blocking
/// [非同期版API]: crate::tokio
pub(crate) enum BlockingThreadPool {}

impl Async for BlockingThreadPool {
Expand Down

0 comments on commit ee7b593

Please sign in to comment.