I’d recommend you have a look at this solution if you want to experiment with what Rust type turns into which Candid description.
In your specific case, I think it would work if your Rust function is fn my_func() -> Option<String>
and you have type Error = text;
in your Candid file