問題タブ [rust-actix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
145 参照

rust - T を定義していない別のアクターのハンドラーから MyActor::from_registry() を呼び出すときに、どのように型注釈を決定しますか?

Actix アクターが 2 人います。MyActor1そのフィールドの 1 つが実装する一般的な特性を定義します。MyActor2定義する必要はなく、どのタイプにマップされるかを知らずにメッセージハンドラーからT呼び出す方法を理解できません。MyActor1::from_registry()MyActor2T

私はこれのバリエーションを試しました:

で定義されてからに追加Tされない限り、どこで/どのように定義するかわからないため、これは機能しません。struct MyActor2<T: Thing>impl<T> Handler<Msg> for MyActor2<T> where T:...

私もこれを試しましたが、Thing実装されていないため機能しませんDefault(それは特性であるため):

これが私が使用している例です:

貨物.toml

main.rs

コードを実行すると、次のエラーが発生します。

私はこれがこの例を解決することを知っています:

実行時の状態がわからない場合はどうすればよいMyActor1<T>ですか? たとえば、コマンド ライン引数に基づいて実行時に初期MyActor1化するコードがあったとします。MyActor1<Two>