Part (a) of Theorem 2.27 in Rudin's POMA

The theorem reads: If X is a metric space and E is a subset of X, then the closure of E is closed.
Rudin's proof: If p belongs to X and not to the closure of E, then p is neither a point of E nor a limit point of E. Hence p has a neighborhood which does not intersect E. The complement of the closure of E is therefore open. Hence the closure of E is closed (POMA, 35).
I'm having trouble seeing why the italicized portion of the proof is correct. Yes, p has a neighborhood which does not intersect E, but, (if I'm not mistaken) the statement that the complement of the closure of E is open does not follow from the fact that p has such a neighborhood. p, it seems, would need to have a neighborhood which does not intersect the closure of E (and not just E itself), for a neighborhood of p that contains limit points of E but not any points of E itself would not be a subset of the complement of the closure of E (in which case, p would not be an interior point of the complement of the closure of E).
Now, intuitively, it seems that if p has a neighborhood which does not intersect E, it cannot have one that intersects the set of limit points of E. However, the fact that Rudin does not mention this statement suggests that there is something about his proof that I do not understand.
Thanks in advance for any help!

I think so. I'll try to prove the contrapositive statement that if a neighborhood of p, called N, intersects the closure of E, then it must intersect E. This is equivalent to showing that if N intersects the set of limit points of E, it must intersect E. If N (of radius r) contains a limit point of E, called q, then d(p,q)<r. Therefore, r - d(p,q)>0. So, we can consider a neighborhood of q of radius r - d(p,q)>0. Because q is a limit point of E, there is a point q' belonging to E such that d(q,q')<r - d(p,q). Thus, d(p,q')<(or=) d(p,q) + d(q,q')<r. So, q' belongs to N.
Hopefully, that's all clear. Would appreciate corrections/suggestions. Thanks!

One very small remark though. You first with an arbitrary neighborhood N around p, and then later in the proof you assumed that this neighborhood is actually a ball of radius r. It might be worth thinking about why you can take the neighborhood to be a ball. You probably know already, but I was just pointing it out for if you didn't

Rudin simply defines a "neighborhood of a point p" as "a set N-sub-r(p) consisting of all points q such that d(p,q)<r," where r is the radius of the neighborhood (32). According to this definition, the set that you present would not be a neighborhood of 0. In fact, it would not be a neighborhood at all, for you can't choose any point p such that the set contains all q obeying the equation d(p,q)<r for some r.