In the rust-bitcoin code, the 160 is a minimum weight, denominated in weight units, not size. 160 weight units corresponds to 40 (virtual) bytes.
In the Bitcoin Core coin selection unit test, the 150 is a virtual size, denominated in virtual bytes. In weight units, it would be 600.
The smallest an input could be is 41 vbytes. This happens to be 41 actual bytes as well, and is 164 weight units. This input would be composed of the 32 byte txid, 4 byte output index, 1 byte scriptSig, and 4 byte sequence. As there is no witness data, each physical byte translates to 4 weight units.
The rust-bitcoin code is specifically excluding all script and witness data, so the 1 byte scriptSig is excluded from their calculation, hence 160 weight units.








