Component

You can write an application without the need to use for Component. This is totally optional, but it serves as a helper trait for parts of your application to have some consistency.

1pub trait Component<MSG, XMSG> {
2    fn update(&mut self, msg: MSG) -> Effects<MSG, XMSG>;
3    fn view(&self) -> Node<MSG>;
4}
1impl Component<Msg, XMSG> for FieldWidget<Msg,XMSG>{
2    fn update(&mut self, msg: Msg) -> Effects<Msg, XMSG>{
3        // --snip--
4    }
5    fn view(&self) -> Node<Msg>{
6        // --snip
7    }
8}

Effects

Effects is a way to contain Msg to be processed in the application that mounts it.