} var ability: Ability { get } var level: Int { get } var health: Int { get set } func displayStatus() func doAbility<T: Pokemon>(with pokemon: T) } struct Pikachu: Pokemon { let name: String let ability: Ability let level: Int var health: Int func displayStatus() { // লུ... } func doAbility<T>(with pokemon: T) where T : Pokemon { // লུ... } }