Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Weapon {
- damage: u8,
- }
- struct Armor {
- defense: u8,
- }
- enum Item {
- Weap(Weapon),
- Arm(Armor),
- }
- impl Item {
- fn damage(&self) -> Option<u8> {
- match self {
- Item::Weap(weapon) => Some(weapon.damage),
- _ => None,
- }
- }
- fn defense(&self) -> Option<u8> {
- match self {
- Item::Arm(armor) => Some(armor.defense),
- _ => None,
- }
- }
- }
- fn main() {
- let item_weapon = Item::Weap(Weapon { damage: 15 });
- println!("weapon.damage: {:?}", item_weapon.damage());
- println!("weapon.defense: {:?}", item_weapon.defense());
- let item_armor = Item::Arm(Armor { defense: 15 });
- println!("armor.damage: {:?}", item_armor.damage());
- println!("armor.defense: {:?}", item_armor.defense());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement