pub trait FollowableItemHandle: ItemHandle {
// Required methods
fn remote_id(&self, client: &Arc<Client>, cx: &AppContext) -> Option<ViewId>;
fn set_leader_peer_id(
&self,
leader_peer_id: Option<PeerId>,
cx: &mut WindowContext<'_>
);
fn to_state_proto(&self, cx: &AppContext) -> Option<Variant>;
fn add_event_to_update_proto(
&self,
event: &dyn Any,
update: &mut Option<Variant>,
cx: &AppContext
) -> bool;
fn to_follow_event(&self, event: &dyn Any) -> Option<FollowEvent>;
fn apply_update_proto(
&self,
project: &Model<Project>,
message: Variant,
cx: &mut WindowContext<'_>
) -> Task<Result<()>>;
fn is_project_item(&self, cx: &AppContext) -> bool;
}