Property definitions

core $ Codec :: defaultinit
# Codes/Decodes entities from/to UTF-8
abstract class Codec
	# Maximum size of a `character` in supported encoding
	fun char_max_size: Int is abstract

	# Transforms `c` to its representation in the format of `self`
	fun encode_char(c: Char): CString is abstract

	# Adds a char `c` to bytes `s`
	#
	# Returns the number of bytes written to `s`
	fun add_char_to(c: Char, s: CString): Int is abstract

	# Transforms `s` to the format of `self`
	fun encode_string(s: Text): Bytes is abstract

	# Adds a string `s` coded as the supported encoding to `b`
	#
	# Returns the number of bytes written to `s`
	fun add_string_to(s: Text, b: Bytes): Int is abstract

	# Size of a codet for the target encoding
	fun codet_size: Int is abstract

	# How many lookaheads might be required to decode a single char ?
	fun max_lookahead: Int is abstract

	# Is the sequence of bytes in `ns` at `position` a valid Char ?
	#
	# Returns either
	# * 0 if valid
	# * 1 if incomplete
	# * 2 if invalid
	fun is_valid_char(ns: CString, position: Int): Int is abstract

	# Decodes a char from `b` to a Unicode code-point
	fun decode_char(b: CString): Char is abstract

	# Decodes a string `b` to UTF-8
	fun decode_string(b: CString, len: Int): String is abstract
end
lib/core/codecs/codec_base.nit:27,1--67,3