// Copyright 2015 The Chromium Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
/** | |
* @interface | |
*/ | |
export class OutputStream { | |
/** | |
* @param {string} data | |
* @return {!Promise} | |
*/ | |
async write(data) { | |
} | |
/** | |
* @return {!Promise} | |
*/ | |
async close() { | |
} | |
} | |
/** | |
* @implements {OutputStream} | |
*/ | |
export class StringOutputStream { | |
constructor() { | |
this._data = ''; | |
} | |
/** | |
* @override | |
* @param {string} chunk | |
* @return {!Promise} | |
*/ | |
async write(chunk) { | |
this._data += chunk; | |
} | |
/** | |
* @override | |
*/ | |
async close() { | |
} | |
/** | |
* @return {string} | |
*/ | |
data() { | |
return this._data; | |
} | |
} |