2016-08-04 04:55:41 +00:00
|
|
|
use view::View;
|
2017-03-26 04:56:31 +00:00
|
|
|
use views::IdView;
|
2016-08-04 04:55:41 +00:00
|
|
|
|
|
|
|
/// Makes a view wrappable in an [`IdView`].
|
|
|
|
///
|
|
|
|
/// [`IdView`]: ../views/struct.IdView.html
|
|
|
|
pub trait Identifiable: View + Sized {
|
2017-02-08 23:20:41 +00:00
|
|
|
/// Wraps this view into an `IdView` with the given id.
|
2016-09-21 01:32:31 +00:00
|
|
|
///
|
|
|
|
/// This is just a shortcut for `IdView::new(id, self)`
|
2017-03-26 04:56:31 +00:00
|
|
|
fn with_id<S: Into<String>>(self, id: S) -> IdView<Self> {
|
2016-08-04 04:55:41 +00:00
|
|
|
IdView::new(id, self)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-09-21 01:32:31 +00:00
|
|
|
/// Any `View` implements this trait.
|
2016-08-04 04:55:41 +00:00
|
|
|
impl<T: View> Identifiable for T {}
|