 extension UTF8.ReverseDecoder : _UTF8Decoder {
   public typealias CodeUnit = UInt8
 
-  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:
       var value = bits       & 0b0______________________11_1111

      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


  mutating func parseOne<I : IteratorProtocol>(
    _ input: inout I
  ) -> Unicode.ParseResult<EncodedScalar> where I.Element == CodeUnit

  static func decodeOne(_ content: EncodedScalar) -> UnicodeScalar
}

extension UnicodeDecoder {
