pub trait ContextStrategy {
    type E: ContextElement;

    // Required methods
    fn empty_context(&self) -> Rc<Context<Self::E>>;
    fn get_empty_context_id(&mut self) -> ContextId;
    fn get_context_id(&mut self, context: &Rc<Context<Self::E>>) -> ContextId;
    fn get_context_by_id(&self, context_id: ContextId) -> Rc<Context<Self::E>>;
    fn new_instance_call_context(
        &mut self,
        callsite: &Rc<CSCallSite>,
        receiver: Option<&Rc<CSPath>>
    ) -> Option<ContextId>;
    fn new_static_call_context(
        &mut self,
        callsite: &Rc<CSCallSite>
    ) -> ContextId;
}

Required Associated Types§

Required Methods§

source

fn empty_context(&self) -> Rc<Context<Self::E>>

source

fn get_empty_context_id(&mut self) -> ContextId

source

fn get_context_id(&mut self, context: &Rc<Context<Self::E>>) -> ContextId

source

fn get_context_by_id(&self, context_id: ContextId) -> Rc<Context<Self::E>>

source

fn new_instance_call_context( &mut self, callsite: &Rc<CSCallSite>, receiver: Option<&Rc<CSPath>> ) -> Option<ContextId>

source

fn new_static_call_context(&mut self, callsite: &Rc<CSCallSite>) -> ContextId

Implementors§