   public typealias CodeUnit = UInt8
   
   public // @testable
-  func _validateBuffer() -> (valid: Bool, length: UInt8) {
-    if buffer._storage & 0x80 == 0 { // 1-byte sequence (ASCII), buffer: [ ... ... ... CU0 ].
-      return (true, 1)
-    }
-
+  func _parseNonASCII() -> (valid: Bool, length: UInt8) {
+    _sanityCheck(buffer._storage & 0x80 != 0) // this case handled elsewhere
+    
     if buffer._storage & 0b0__1100_0000__1110_0000
                       == 0b0__1000_0000__1100_0000 {
       // 2-byte sequence. At least one of the top 4 bits of the decoded result



public protocol _UTF8Decoder : UnicodeDecoder {
  func _validateBuffer() -> (valid: Bool, length: UInt8)
  var buffer: Buffer { get set }
}


  }
  
  public // @testable
  func _parseNonASCII() -> (valid: Bool, length: UInt8) {
    _sanityCheck(buffer._storage & 0x80 != 0) // this case handled elsewhere
    if buffer._storage                & 0b0__1110_0000__1100_0000
                                     == 0b0__1100_0000__1000_0000 {
      // 2-byte sequence.  Top 4 bits of decoded result must be nonzero
