private Option <ActorItem> GetItem(ProcessId pid, ActorItem current) { if (pid == ProcessId.Top) { return(current); } else { var child = pid.Head().Name.Value; if (current.Actor.Children.ContainsKey(child)) { var process = current.Actor.Children[child]; return(GetItem(pid.Tail(), process)); } else { return(None); } } }
private Option <ActorItem> GetItem(ProcessId pid) => pid.IsValid ? pid.Head() == RootProcess.Id ? GetItem(pid.Tail(), root) : failwith <Option <ActorItem> >("Can't get non-local items from within ActorSystemState") : None;