🔧 refactor: すべてのBoxをArc<Mutex>パターンで統一
CopilotのBox実装を私たちのArc<Mutex>パターンで統一: - BufferBox: Arc<Mutex<Vec<u8>>>で内部可変性を実現 - FileBox: Arc<Mutex<File>>でファイルハンドル管理 - JSONBox: Arc<Mutex<Value>>でJSON値を保持 - HttpClientBox: Arc<Mutex<Client>>でHTTPクライアント管理 - StreamBox: Arc<Mutex>でストリームバッファと位置を管理 - RegexBox: Arc<Regex>で軽量ラッパー実装 各Boxに実用的なメソッドも追加: - BufferBox: write, read, readAll, clear, length, append, slice - FileBox: read, write, exists, delete, copy - JSONBox: parse, stringify, get, set, has, keys - HttpClientBox: get, post, put, delete, request - StreamBox: write, read, position, length, reset - RegexBox: test, find, findAll, replace, split interpreterに新Box用のメソッド実行を追加: - data_methods.rs: BufferBox, JSONBox, RegexBox - network_methods.rs: HttpClientBox, StreamBox これでコードベース全体が一貫性のあるArc<Mutex>パターンで統一されました! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -109,18 +109,12 @@ impl NyashBox for NyashFutureBox {
|
||||
}
|
||||
}
|
||||
|
||||
// Keep the original generic FutureBox for compatibility
|
||||
pub struct FutureBox<T> {
|
||||
pub future: Pin<Box<dyn Future<Output = T> + Send>>,
|
||||
}
|
||||
// Export NyashFutureBox as FutureBox for consistency
|
||||
pub type FutureBox = NyashFutureBox;
|
||||
|
||||
impl<T> FutureBox<T> {
|
||||
pub fn new<F>(fut: F) -> Self
|
||||
where
|
||||
F: Future<Output = T> + Send + 'static,
|
||||
{
|
||||
FutureBox {
|
||||
future: Box::pin(fut),
|
||||
}
|
||||
impl FutureBox {
|
||||
/// wait_and_get()の実装 - await演算子で使用
|
||||
pub fn wait_and_get(&self) -> Result<Box<dyn NyashBox>, String> {
|
||||
Ok(self.get())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user