Rudin defines a neighborhood as follows:
Let $X$ be a metric space endowed with a distance function $d$. A neighborhood of a point $p \in X$ is a set $N_r(p)$ consisting of all $q \in X$ such that $d(p,q) < r$ for some $r > 0$.
He later proves two facts: every neighborhood is an open set, and every finite set is closed.
But it would seem to me that a neighborhood as defined above could be finite. For example, let $X = \{1,2,3\}$ with $d(x,y) = |x-y|$ be a metric space . Consider the neighborhood around $p = 2$ of radius $0.5$, i.e.: the set of all points $q$ in $X$ such that $d(q,p)<0.5$. But the neighborhood is simply $\{2\}$. Therefore, the neighborhood is a finite set, and therefore closed. But every neighborhood is open. This is a contradiction.
So my understanding of a neighborhood is broken somehow. It has further implications: if we define $E = \{2\}$, then the $0.5$-radius neighborhood is $\{2\}$, which is a subset of $E$, which means that $2$ is an interior point of $E$. Since $2$ is the only point in $E$, all points in $E$ are interior points, and $E$ is open. But $E$ is finite, and therefore closed.
I'm probably missing something obvious. Can anyone spot my mistake?