Option <---> Optional

Rust's Option is seen on the Swift side as a Swift Optional.

Example

#![allow(unused)] fn main() { // Rust #[swift_bridge::bridge] mod ffi { extern "Rust" { fn make_rust_option() -> Option<u8>; } extern "Swift" { fn make_swift_optional() -> Option<bool>; } } fn make_rust_option() -> Option<u8> { if ffi::make_swift_optional == Some(true) { Some(111) } else { None } } }
// Swift func call_rust_and_divide_by_2() -> Optional<UInt8> { if case let val? = make_rust_option() { return val / 2 } else { nil } } func make_swift_optional() -> Bool? { true }