V
Он используется в публичном интерфейсе, значит должен быть публичным. То что ты в явном виде сейчас не видишь Х, не означает, что Х не нужен компилятору.
И метод foo.bar() из A<X> ,будет развернут в что-то типа
<Foo as A<X>>::bar(& foo).Size: a a a
V
<Foo as A<X>>::bar(& foo).V
async fn main(){
let (tx, rx) = channel();
let t = tokio::spawn(channel_handler(rx));
...
actix_web().await;
t.await;
}
async fn channel_handler(rx: Receiver<Foo>)
loop {
rx.next().await.unwrap().foo_method().await;
}
IL
<Foo as A<X>>::bar(& foo).АМ
V
AR
АМ
AR
IL
V
IL
JG
MB
NL
#[derive(juniper::GraphQLObject)]
struct Test<T> { t: T }
juniper::ScalarValue для T? А если это необязательно скаляр?#[derive(juniper::GraphQLObject)]
struct Test {
t: HashMap<String, serde_json::Value>
}
MB
JG
MB
JG
MB