// Class: lime.text.unifill.Unicode

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;

// Constructor

var Unicode = function(){}

// Meta

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

// Init



// Statics

Unicode.decodeSurrogate = function(hi,lo) {
	return hi - 55232 << 10 | lo & 1023;
}
Unicode.encodeHighSurrogate = function(c) {
	return (c >> 10) + 55232;
}
Unicode.encodeLowSurrogate = function(c) {
	return c & 1023 | 56320;
}
Unicode.isScalar = function(code) {
	if(0 <= code && code <= 1114111 && !Unicode.isHighSurrogate(code)) {
		return !Unicode.isLowSurrogate(code);
	} else {
		return false;
	}
}
Unicode.isHighSurrogate = function(code) {
	if(55296 <= code) {
		return code <= 56319;
	} else {
		return false;
	}
}
Unicode.isLowSurrogate = function(code) {
	if(56320 <= code) {
		return code <= 57343;
	} else {
		return false;
	}
}
Unicode.minCodePoint = 0
Unicode.maxCodePoint = 1114111
Unicode.minHighSurrogate = 55296
Unicode.maxHighSurrogate = 56319
Unicode.minLowSurrogate = 56320
Unicode.maxLowSurrogate = 57343

// Export

exports.default = Unicode;