     return 1
   }
   
-  public static func decodeOne(_ encodedScalar: Buffer) -> UnicodeScalar {
-    let bits = encodedScalar._storage
-    switch encodedScalar._bitCount {
+  public static func decodeOne(_ source: EncodedScalar) -> UnicodeScalar {
+    let bits = source._storage
+    switch source._bitCount {
     case 8:
       return UnicodeScalar(_unchecked: bits)
     case 16:

      value    |= bits &>> 4 & 0b0_________1111_0000__0000_0000
      return UnicodeScalar(_unchecked: value)
    default:
      _sanityCheck(encodedScalar._bitCount == 32)
      var value = bits       & 0b0______________________11_1111
      value    |= bits &>> 2 & 0b0______________1111__1100_0000
      value    |= bits &>> 4 & 0b0_____11__1111_0000__0000_0000

extension _UTF8Decoder where Buffer == _UIntBuffer<UInt32, UInt8> {
  public mutating func parseOne<I : IteratorProtocol>(
    _ input: inout I
  ) -> Unicode.ParseResult<EncodedScalar>
    where I.Element == Unicode.UTF8.CodeUnit {

    // Bufferless ASCII fastpath.
    if _fastPath(buffer.isEmpty) {
      guard let codeUnit = input.next() else { return .emptyInput }
      // ASCII, return immediately.
      if codeUnit & 0x80 == 0 {
        return .valid(EncodedScalar(containing: codeUnit))
      }
      // Non-ASCII, proceed to buffering mode.
      buffer.append(codeUnit)
