๊ณต์œ  ํƒ€์ž…

#[cxx::bridge]
mod ffi {
    #[derive(Clone, Debug, Hash)]
    struct PlayingCard {
        suit: Suit,
        value: u8,  // A=1, J=11, Q=12, K=13
    }

    enum Suit {
        Clubs,
        Diamonds,
        Hearts,
        Spades,
    }
}
  • C์™€ ๊ฐ™์€ (๋‹จ์œ„) enum๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต์œ  ํƒ€์ž…์˜ #[derive()]์—๋Š” ์ œํ•œ๋œ ์ˆ˜์˜ ํŠธ๋ ˆ์ž‡์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. C++ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ๋„ ์ƒ์‘ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Hash๋ฅผ ํŒŒ์ƒํ•˜๋ฉด ํ•ด๋‹น C++ ํƒ€์ž…์— ๋Œ€ํ•œ std::hash ๊ตฌํ˜„๋„ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.