One declaration per source file Exactly one class, struct, enum, or interface per source file, although inner classes are encouraged where scoping appropriate.