Which I do understand I need to implement this trait but it would be really useful to have a working example. I have tried googling for one but failed.
This question was quite difficult to follow. The way the code "used to be" is not really helpful. I spent far too long trying to find how Spi::new_no_cs_no_mosi is relevant to stm32f4xx-hal[1]. At the end of the day, this is a red herring.
The error message is trying to point you in the right direction, but your question does not provide any context on what the code looks like that produced that error. There is some information on embedded_hal::spi - Rust (docs.rs) that is subtle and easy to miss: the difference between SpiBus and SpiDevice.
Presumably your callee wants a type that implements SpiDevice, but your caller is passing a type that implements SpiBus instead. Probably Spi in stm32f4xx_hal::spi - Rust -- but this is a best guess based only on inference from surrounding context.
Without any information about what you are calling with what types, I'm afraid at the end of my capability to provide any more assistance.
Sorry thought stm32f4xx-hal was reasonable popular and kept my wording to a minimum.
I rhink the answer is to use
let spi: Spi<_, _> = ...;
let spi_device = ExclusiveDevice::new_no_delay(spi, cs_output_pin);
Have not tried yet as it is midnight.
Examples are far more xuseful with documentation. I struggle with just docs
In this case, implementing the spiDevice myself had me struggling with the ErrorType and ErrorKind. I am assuming my help above will show me how they achieved this