If you use the Cocoa API with ObjC or Swift, you get Automatic Reference Counting (ARC), generated by the compiler. I guess with this you'd have to retain / release your objects manually again?
Except that even Apple's ARC is not automatic - try passing the pointer to a GArray, or putting it on a malloc'ed linked list or any other data structure not implemented in Swift or ObjectiveC (provided that you compile objectiveC with the correct build flags).
The point is: you can't leak, you can't end up keeping a reference without incrementing the refcount and you don't events have to worry about any of the refcounting as long as the code you write is sound according to Rust rules.
Yes I'm aware that the A stands for Atomic in Rust, not Automatic. But it is still automatic because you do not need to increment and decrement the counter manually.
> Since = is the same as .clone() in character count?
Why does character count matter? I think you're getting a bit distracted from the point.
Will you need to manually free/release objects? No you will not.
This is, incidentally, how the servo bindings to core-foundation work (I prefer those bindings where there is overlap).
Servo bindings: https://github.com/servo/core-foundation-rs
Other crates of interest on this topic: - https://crates.io/crates/objc - https://crates.io/crates/block