this post was submitted on 31 May 2025
582 points (98.8% liked)

Trans Memes

1769 readers
177 users here now

A place to post memes relating to the transgender experience.

Rules

  1. Follow lemmy.blahaj.zone community guidelines.
  2. Posts must be trans related.
  3. No bigotry.
  4. Do not post or link to pornography.
  5. If a post is tagged with a specific gender identity, keep the conversation centered on that identity.
  6. Posts that assume the viewer’s gender and/or contain potentially triggering content must be spoilered and tagged at the beginning of the post title. Example content-warning tags that you can copy include the following:
  1. Mods can be arbitrary.

Recommendations

  1. Include other tags in posts for example:
  1. Include image description when possible.
  2. Link to source

founded 2 years ago
MODERATORS
 
top 31 comments
sorted by: hot top controversial new old
[–] tuna@discuss.tchncs.de 22 points 1 day ago (1 children)
pub trait Gender {}

// implement your own gender, and if u want, publish online! :3
pub struct Masculine;
impl Gender for Masculine {}
pub struct Feminine;
impl Gender for Feminine {}

// removed old api:
// fn two_lovers(one: Masculine, two: Feminine)
// srry not srry for breaking backwards compat
// new version has more flexible api!<3
fn two_lovers(one: Box<dyn Gender>, two: Box<dyn Gender>) {
    println!("smooch~");
}

// todo: other functions!!

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn me_and_who() {
        two_lovers(Box::new(Feminine), Box::new(Feminine));
    }
}
[–] zea_64@lemmy.blahaj.zone 11 points 20 hours ago* (last edited 20 hours ago) (1 children)

PR: support polyamory

This also changes the API to take a shared reference rather than ownership of the lovers :3

pub fn lovers(partners: &[&dyn Gender]) {
    println!("smooch~");
}

Oh and while we're at it, for our agender users:

impl Gender for () {}
[–] tuna@discuss.tchncs.de 5 points 17 hours ago

PR: Merged

Good call with using a shared reference so now we can kiss our partner(s) more than once!!

Kissing many partners with one big smooch might be hard tho, maybe we need to change the implementation to use combinatorics so that everyone kisses each of their partners at least once.

Since there's no way to tell who kisses who, i can cheat by printing nCr times :3

pub fn lovers(partners: &[&dyn Gender]) {
    match partners.len() {
        0 => {
            println!("ghost smooch~");
        }
        1 => {
            println!("mirror smooch~");
        }
        p => {
            // p >= 2, safe to unwrap
            for _ in 0..ncr(p, 2).unwrap() {
                println!("smooch~");
            }
        }
    }
}
[–] Legume5534@lemm.ee 33 points 1 day ago

I fucking knew when I came into this thread it would just be nerds arguing over how wrong the joke is.

[–] SanicHegehog@lemm.ee 55 points 1 day ago (3 children)

I for one identify as false

[–] Klear@lemmy.world 4 points 1 day ago
[–] Toldry@lemmy.world 3 points 1 day ago

best i can offer is "false"

[–] mxcory@lemmy.blahaj.zone 12 points 1 day ago

Is this TRUE?

[–] Jesus_666@lemmy.world 43 points 1 day ago (2 children)

That should be private string? Gender. Explicit nullables are your friends.

[–] Quill7513@slrpnk.net 17 points 1 day ago

yeah don't even force people into identifying their gender as empty string since it's a social construct anyway

[–] tiredofsametab@fedia.io 8 points 1 day ago (3 children)

Which language(s) have <type>? now? Is that a new Java thing? JS/TS thing? I've never seen it.

Edit: formatting

[–] Custard@lemmy.world 9 points 1 day ago (1 children)
[–] hikaru755@lemmy.world 2 points 1 day ago

Syntax is a little different though, the above wouldn't complete

[–] Jesus_666@lemmy.world 10 points 1 day ago (2 children)

C#. Until semi-recently it was only used for value types (as reference types are supposed to be nullable by default) but these days you can enable explicit nullables, which means that you have to explicitly specify nullability even for reference types.

I like explicit nullables. It's not much more work to type those question marks and it adds a safeguard against null showing up where it shouldn't.

I specifically inspired on it for this picture because the code on the sign uses capitalized names for something that isn't a class, which is a very C# thing to do.

[–] itslilith@lemmy.blahaj.zone 4 points 1 day ago (1 children)

That sounds similar in purpose to Haskell's 'Maybe' or Rust's 'Option' enum, right?

I still think that the null type was a mistake that introduces unnecessary bugs. But I'm glad to see more languages are taking measures against it

[–] tuna@discuss.tchncs.de 2 points 1 day ago

Someone can correct me if im wrong but I think nullable in C# still doesnt force you to do a null check before accessing properties or methods, however I believe it does give a type error when using a nullable type where non-nullable is expected, which is good. So it might not be 1-to-1 but it fulfills a similar purpose for sure.

Coming from a rust background I would have sure appreciated my workplace enabling the nullable feature on our main codebase from the start. I've run out of patience for null errors :(

[–] tiredofsametab@fedia.io 3 points 1 day ago

Thanks for the info!

[–] mothersprotege@lemm.ee 2 points 1 day ago

I'm a novice in these matters, but it's definitely a thing in C#.

[–] logi@lemmy.world 5 points 1 day ago

Why are we even recording that?

[–] TriflingToad@sh.itjust.works 10 points 1 day ago

hehe that's good

[–] abfarid@startrek.website 10 points 1 day ago* (last edited 1 day ago) (2 children)

Should be enum.
And don't capitalize your variables.

[–] valkyrieangela@lemmy.blahaj.zone 7 points 1 day ago (1 children)

enum implies that you cant change it, unless you were referring to the bool then true.

[–] abfarid@startrek.website 10 points 1 day ago (1 children)

Yes, instead of boolean. But instead of String, too, for optimization reasons. You could always just add more enum constants to it.

[–] anothercatgirl@lemmy.blahaj.zone 2 points 1 day ago (1 children)

That requires a recompile though

[–] abfarid@startrek.website 4 points 1 day ago

Think of the patch notes though.

added 4 new genders

[–] olafurp@lemmy.world 1 points 1 day ago (1 children)
[–] abfarid@startrek.website 1 points 1 day ago (1 children)

Idk C#, could you explain?

[–] olafurp@lemmy.world 2 points 23 hours ago* (last edited 23 hours ago)

The MS style guide, which most C# code follows, says so.

https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/identifier-names#pascal-case

I personally hate it and I prefer the java/js style. The braces are also horrible. Here's an example.

public class ExampleEvents
{
    public bool IsValid;
    public IWorkerQueue WorkerQueue { get; init; }
    public event Action EventProcessing;
    public void StartEventProcessing()
    {
        static int CountQueueItems() => WorkerQueue.Count;
        // ...
    }
}
[–] Rin@lemm.ee 8 points 1 day ago (1 children)

Shouldn't it be protected and not private?

[–] Rin@lemm.ee 11 points 1 day ago (1 children)

Also, a static gender would be pretty funny imo

[–] JPAKx4@lemmy.blahaj.zone 8 points 1 day ago