I can restrict types for struct Example or implementation.
But in case the restricted types don't have clone() function, is there other way to get values?
No. If some type doesn't implement Clone, it is single-ownership only. So, while your Example<T> is still alive, you can't get T out of it.
There are two possible workarounds, but they both change semantics of the code:
Store an Option<T> inside Example<T> and call Option::take inside get.