The rust version includes reference counting, state verification (preventing access before initialisation) and locking. All "for free" by wrapping the original value.
In C you would have to write all that out. And still have a good chance of getting something wrong first try.
Not the OP, but I do not like reading one line expression bonanzas. I would rather read implementations of different subsystems and then calling them.
I mean, I find this simpler
procedure x_component
..
end
procedure y_component
..
end
procedure assembly
x_component
y_component
..
end
In python, rust, C++, java, lisp people seem to form very long procedures with lambdas and some ninja fu to save lines of code and it may look elegant to some people, but I can't read it.
In C you would have to write all that out. And still have a good chance of getting something wrong first try.