#[derive(Debug)]
struct Emp{
empid:i16,
ename:String,
salary:f32
}
impl Emp{
fn new(empid:i16,ename:String,salary:f32)->Self{
Self{empid,ename,salary}
}
fn calc_net_salary(&self)->f32{
let hra:f32=self.salary*0.1;
let pf:f32=self.salary*0.15;
let da:f32=self.salary*0.12;
let net_sal:f32=self.salary+hra+da-pf;
net_sal
}
fn falls_under(&self,net_sal:f32){
if net_sal<25000.0 {
println!("Employee {} falls under Low Income Group(LIG)",self.ename);
}
else if net_sal>=25000.0 && net_sal<=50000.0{
println!("Employee {} falls under Medium Income Group(MIG)",self.ename);
}
else{
println!("Employee {} falls under High Income Group(HIG)",self.ename);
}
}
}
fn main(){
let emp1:Emp=Emp::new(1,String::from("Janu"),5000.0);
println!("{:?}",emp1);
let net_sal=emp1.calc_net_salary();
emp1.falls_under(net_sal);
}