From a422b92b0c4435c8e45fa7a8c6e6e5e0df1770da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Tue, 15 Oct 2024 17:14:07 +0900 Subject: [PATCH] [obsidian] vault backup: 2024-10-15 17:14:07[ --- content/mimiumのプラグインシステム.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/content/mimiumのプラグインシステム.md b/content/mimiumのプラグインシステム.md index d109c307..fd009b55 100644 --- a/content/mimiumのプラグインシステム.md +++ b/content/mimiumのプラグインシステム.md @@ -25,7 +25,7 @@ struct SystemPluginSignature{ trait SystemPlugin{ fn on_init(&mut self, machine:&mut Machine); fn on_sample(&mut self, machine:&mut Machine); - fn get_plugin_signature(self)->Vec<> + fn get_plugin_signature(self)->Vec } impl for Rc>{ @@ -34,4 +34,19 @@ impl for Rc>{ } } +struct Scheduler{ +... +} +impl SystemPlugin for Scheduler{ +.. + fn get_plugin_signature(self)->?{ + + } +} + ``` + +プラグインの実装側では当然いくつかメンバ関数(`&mut self`と`&mut Machine`を引数にとる)を実装して、それをmimium側にエクスポートするみたいなことをしたい + +が、そうするとSystemPluginSignatureの型の中に`Self`が混ざってくるのを避けられず、object-safeにするのが難しい +