add C functions for map lengthPrefix

This commit is contained in:
Michael Sippel 2025-02-05 11:25:53 +01:00
parent 10dab73876
commit e07b3585f9
Signed by: senvas
GPG key ID: F96CF119C34B64A6
6 changed files with 81 additions and 13 deletions
morphisms/src

View file

@ -28,6 +28,51 @@ int length_prefix_uint64_array_reverse(
return 0;
}
int length_prefix_array_map_64_to_64(
int (*f) ( uint64_t const * restrict, uint64_t * restrict ),
struct LengthPrefixUInt64Array const * restrict src,
struct LengthPrefixUInt64Array * restrict dst
) {
dst->len = src->len;
for( uint64_t i = 0; i < src->len; ++i ) {
int result = f( &src->items[i], &dst->items[i] );
if( result ) {
return result;
}
}
return 0;
}
int length_prefix_array_map_8_to_64(
int (*f) ( uint8_t const * restrict, uint64_t * restrict ),
struct LengthPrefixUInt8Array const * restrict src,
struct LengthPrefixUInt64Array * restrict dst
) {
dst->len = src->len;
for( uint64_t i = 0; i < src->len; ++i ) {
int result = f( &src->items[i], &dst->items[i] );
if( result ) {
return result;
}
}
return 0;
}
int length_prefix_array_map_64_to_8(
int (*f) ( uint64_t const * restrict, uint8_t * restrict ),
struct LengthPrefixUInt64Array const * restrict src,
struct LengthPrefixUInt8Array * restrict dst
) {
dst->len = src->len;
for( uint64_t i = 0; i < src->len; ++i ) {
int result = f( &src->items[i], &dst->items[i] );
if( result ) {
return result;
}
}
return 0;
}
void length_prefix_uint64_array_dump(
struct LengthPrefixUInt64Array const * data
) {