I want to do basically this:

struct MyStruct < T> {
    data: T
}

impl < T> for MyStruct < T> {
    fn foo() {
        println!("Generic")
    }
}

impl for MyStruct < u32> {
    fn foo() {
        println!("u32")
    }
}

I have tried doing

impl < T: !u32> for MyStruct < T> {
    ...
}

But it doesn’t seem to work. I’ve also tried various things with traits but none of them seem to work. Is this even possible?

EDIT: Fixed formatting

  • @[email protected]
    link
    fedilink
    69 months ago

    What you are looking for is called specialization.

    It is currently unstable and incomplete, which means you can activate it by adding the macros #![feature(specialization)] and #![allow(incomplete_features)] at the beginning of the file. But you have no guarantee that it will work the same way on the next version of rust.

    • @calcopiritusOP
      link
      49 months ago

      Yeah, that seems like it would work! Unfortunately I can’t use unstable features. I’ll keep it in mind for other projects though.

    • @calcopiritusOP
      link
      2
      edit-2
      9 months ago

      I’m sorry, no wonder you are lost, so it made no sense when you wrote this comment, lemmy deleted everything between the “less than” character and “>”. I had to change them for “<” in order for them not to get deleted.

      • @[email protected]
        link
        fedilink
        49 months ago

        lemmy deleted everything between the “less than” character and “>”.

        Lemmy also escaped the ampersands in their comment’s link 😉

        Isn’t broken sanitization great!