// Class: lime.text.unifill._Utf16.StringU16_Impl_

var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this

$global.Object.defineProperty(exports, "__esModule", {value: true});

var __map_reserved = {};

// Imports

var $hxClasses = require("./../../../../hxClasses_stub").default;
var $import = require("./../../../../import_stub").default;
function StringBuf() {return require("./../../../../StringBuf");}
function StringTools() {return require("./../../../../StringTools");}
function HxOverrides() {return require("./../../../../HxOverrides");}

// Constructor

var StringU16_Impl_ = function(){}

// Meta

StringU16_Impl_.__name__ = ["lime","text","unifill","_Utf16","StringU16_Impl_"];
StringU16_Impl_.prototype = {
	
};
StringU16_Impl_.prototype.__class__ = StringU16_Impl_.prototype.constructor = $hxClasses["lime.text.unifill._Utf16.StringU16_Impl_"] = StringU16_Impl_;

// Init



// Statics

StringU16_Impl_.fromString = function(s) {
	var this1 = s;
	return this1;
}
StringU16_Impl_.fromCodeUnit = function(u) {
	var this1 = String.fromCharCode(u);
	return this1;
}
StringU16_Impl_.fromTwoCodeUnits = function(u0,u1) {
	var this1 = String.fromCharCode(u0) + String.fromCharCode(u1);
	return this1;
}
StringU16_Impl_.ofArray = function(a) {
	var buf = new (StringBuf().default)();
	var _g = 0;
	while(_g < a.length) {
		var x = a[_g];
		++_g;
		buf.addChar(x);
	}
	var this1 = buf.toString();
	return this1;
}
StringU16_Impl_.fromArray = function(a) {
	var buf = new (StringBuf().default)();
	var _g = 0;
	while(_g < a.length) {
		var x = a[_g];
		++_g;
		buf.addChar(x);
	}
	var this1 = buf.toString();
	return this1;
}
StringU16_Impl_.codeUnitAt = function(this1,index) {
	return (StringTools().default).fastCodeAt(this1,index);
}
StringU16_Impl_.substr = function(this1,index,len) {
	var this2 = (HxOverrides().default).substr(this1,index,len);
	return this2;
}
StringU16_Impl_.toString = function(this1) {
	return this1;
}
StringU16_Impl_.toArray = function(this1) {
	var i = 0;
	var len = this1.length;
	var _g = [];
	while(i < len) _g.push((StringTools().default).fastCodeAt(this1,i++));
	return _g;
}
StringU16_Impl_._new = function(s) {
	var this1 = s;
	return this1;
}
StringU16_Impl_.get_length = function(this1) {
	return this1.length;
}


// Export

exports.default = StringU16_Impl_;