let UserLogin { email, password } = thing_to_unpack;
abc(email, password);
However, unless you actually need to take ownership of those strings, the general advice is to just take &str parameters. Then you'd just call abc(&thing.email, &thing.password).
pattern bindings are not allowed after an @, so you can't give a name to the whole struct too. So if you call that function, only the struct fields names are usable.