MP fixes: more platforms
This commit is contained in:
1 parent
a5f2128e1d
commit
cc8c9ecc5d
6 files changed
+958
-57
No files matched your search
@@ -27,6 +27,9 @@ interface CRC<T> {
|
||||
fun crc8(data: ByteArray, polynomial: UByte = 0xA7.toUByte()): UByte =
|
||||
CRC8(polynomial).also { it.update(data) }.value
|
||||
|
||||
fun crc8(data: UByteArray, polynomial: UByte = 0xA7.toUByte()): UByte =
|
||||
CRC8(polynomial).also { it.update(data) }.value
|
||||
|
||||
/**
|
||||
* Calculate CRC16 for a data array using a given polynomial (CRC16-CCITT polynomial (0x1021) by default)
|
||||
*/
|
||||
|
||||
@@ -77,19 +77,28 @@ interface KVStorage {
|
||||
/**
|
||||
* Write
|
||||
*/
|
||||
inline fun <reified T: Any>KVStorage.write(key: String,value: T) {
|
||||
this[key] = BipackEncoder.encode(value)
|
||||
inline fun <reified T>KVStorage.write(key: String,value: T) {
|
||||
this[key] = BipackEncoder.encode<T>(value)
|
||||
}
|
||||
|
||||
@Suppress("unused")
|
||||
inline fun <reified T>KVStorage.save(key: String,value: T?) {
|
||||
if( value != null ) write(key, value)
|
||||
else delete(key)
|
||||
}
|
||||
|
||||
inline fun <reified T:Any>KVStorage.read(key: String): T? =
|
||||
this[key]?.let { BipackDecoder.decode(it) }
|
||||
this[key]?.let { BipackDecoder.decode<T>(it) }
|
||||
|
||||
@Suppress("unused")
|
||||
inline fun <reified T:Any>KVStorage.load(key: String): T? = read(key)
|
||||
|
||||
inline operator fun <reified T> KVStorage.invoke(defaultValue: T,overrideName: String? = null) =
|
||||
KVStorageDelegate<T>(this, typeOf<T>(), defaultValue, overrideName)
|
||||
|
||||
inline fun <reified T> KVStorage.stored(defaultValue: T, overrideName: String? = null) =
|
||||
KVStorageDelegate<T>(this, typeOf<T>(), defaultValue, overrideName)
|
||||
|
||||
inline fun <reified T> KVStorage.optStored(overrideName: String? = null) =
|
||||
KVStorageDelegate<T?>(this, typeOf<T?>(), null, overrideName)
|
||||
|
||||
|
||||
Reference in new issue
Block a user