| ▲ | thinkharderdev 2 hours ago | |
So Q is a "tuple-struct". In rust you can define a struct like struct Q<T> { value: Option<T> } with a named field or you can define it like struct<T> Q(Some<T>) which is the same struct layout but without an explicit name for the value. In that case, the field is implicitly names `0` So q.0 = Some(foo) is equivalent to q.value = Some(foo). The Some(..) is just one variant of the Option enum: enum Option<T> { None, Some(T) } Option represents a value that may or may not be initialized. For uninitialized values you use the None variant and then you can initialize it to Some(value). The C rough equivalent would be struct Q { void* value; } struct Q q = q { NULL }; q->value = ... | ||