• TehPers@beehaw.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago
    #[unsafe(export_name = "my_super_duper_function")]
    pub fn foo() {}
    

    I would recommend reading up some materials on FFI in Rust if you’re interested. Calling functions in Rust from C and in C from Rust (or even languages other than C) is both extremely common and a primary usecase of the language.

    • INeedMana@piefed.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      Wouldn’t that make the body of the function unsafe too?

      I would recommend reading up some materials on FFI in Rust

      Yeah, I’m slowly getting to that

      • TehPers@beehaw.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        No, the attribute is unsafe. An unsafe function is marked unsafe fn.

        Also, unsafe by itself just means there are invariants that must me manually upheld to avoid unsound behavior. If those invariants are upheld, then it doesn’t matter if it’s unsafe.