[−][src]Trait dcc_lsystem::turtle::TurtleContainer
This trait indicates that the implementor contains a turtle for us to play with.
It's a bit annoying to have to implement this trait everywhere, so using the dcc-lsystem-derive
crate you can do the following:
use dcc_lsystem::turtle::{SimpleTurtle, TurtleContainer}; use dcc_lsystem_derive::TurtleContainer; #[derive(TurtleContainer)] struct BasicContainer { #[turtle] inner : SimpleTurtle, /* <----- some other fields ----- */ }
which is roughly equivalent to the following:
use dcc_lsystem::turtle::{SimpleTurtle, TurtleContainer, MovingTurtle}; struct BasicContainer { inner : SimpleTurtle, /* <----- some other fields ----- */ } impl TurtleContainer for BasicContainer { type Item = <SimpleTurtle as MovingTurtle>::Item; fn inner(&self) -> &MovingTurtle<Item = Self::Item> { &self.inner } }
Associated Types
type Item
Required methods
fn inner(&self) -> &dyn MovingTurtle<Item = Self::Item>
Implementors
impl<T> TurtleContainer for dyn MovingTurtle<Item = T>
[src]
Every turtle contains a turtle