/// Main trait implement by each environements
pubtraitEnv<Obs, Action> {/// Reset function to restart the environement
fnreset(&mutself);/// Step function to take an action, return a tuple of (done, reward).
/// Done will be true when the episode is finished and require to call
/// `.reset()` next
/// The reward is simply the reward signal.
fnstep(&mutself, action:&Action)->(bool, f32);/// This method is used get the observation, this is the main difference
/// with the OpenAI gym, the goal is to be able to reuse objects and avoid
/// allocation..
fnobserve(&self, obs:&mut Obs);}