Switch to <* *> docs. Fix issue with dynamically loaded C3 libs with other C3 code.

This commit is contained in:
Christoffer Lerno
2024-10-12 17:55:05 +02:00
committed by Christoffer Lerno
parent 9f6a4eb300
commit 31cd839063
119 changed files with 3271 additions and 3277 deletions

View File

@@ -47,28 +47,28 @@ macro bool @is_outstream(#expr)
return $assignable(#expr, OutStream);
}
/**
* @param [&out] ref
* @require @is_instream(stream)
**/
<*
@param [&out] ref
@require @is_instream(stream)
*>
macro usz! read_any(stream, any ref)
{
return read_all(stream, ((char*)ref)[:ref.type.sizeof]);
}
/**
* @param [&in] ref "the object to write."
* @require @is_outstream(stream)
* @ensure return == ref.type.sizeof
*/
<*
@param [&in] ref "the object to write."
@require @is_outstream(stream)
@ensure return == ref.type.sizeof
*>
macro usz! write_any(stream, any ref)
{
return write_all(stream, ((char*)ref)[:ref.type.sizeof]);
}
/**
* @require @is_instream(stream)
*/
<*
@require @is_instream(stream)
*>
macro usz! read_all(stream, char[] buffer)
{
if (buffer.len == 0) return 0;
@@ -77,9 +77,9 @@ macro usz! read_all(stream, char[] buffer)
return n;
}
/**
* @require @is_instream(stream)
*/
<*
@require @is_instream(stream)
*>
macro char[]! read_new_fully(stream, Allocator allocator = allocator::heap())
{
usz len = available(stream)!;
@@ -93,9 +93,9 @@ macro char[]! read_new_fully(stream, Allocator allocator = allocator::heap())
return data[:len];
}
/**
* @require @is_outstream(stream)
*/
<*
@require @is_outstream(stream)
*>
macro usz! write_all(stream, char[] buffer)
{
if (buffer.len == 0) return 0;
@@ -186,10 +186,10 @@ macro usz! copy_through_buffer(InStream in, OutStream dst, char[] buffer) @local
const char[*] MAX_VARS @private = { [2] = 3, [4] = 5, [8] = 10 };
/**
* @require @is_instream(stream)
* @require @typekind(x_ptr) == POINTER && $typeof(x_ptr).inner.kindof.is_int()
**/
<*
@require @is_instream(stream)
@require @typekind(x_ptr) == POINTER && $typeof(x_ptr).inner.kindof.is_int()
*>
macro usz! read_varint(stream, x_ptr)
{
var $Type = $typefrom($typeof(x_ptr).inner);
@@ -223,10 +223,10 @@ macro usz! read_varint(stream, x_ptr)
}
return MathError.OVERFLOW?;
}
/**
* @require @is_outstream(stream)
* @require @typekind(x).is_int()
**/
<*
@require @is_outstream(stream)
@require @typekind(x).is_int()
*>
macro usz! write_varint(stream, x)
{
var $Type = $typeof(x);
@@ -243,9 +243,9 @@ macro usz! write_varint(stream, x)
return write_all(stream, buffer[:i + 1]);
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro ushort! read_be_ushort(stream)
{
char hi_byte = stream.read_byte()!;
@@ -253,26 +253,26 @@ macro ushort! read_be_ushort(stream)
return (ushort)(hi_byte << 8 | lo_byte);
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro short! read_be_short(stream)
{
return read_be_ushort(stream);
}
/**
* @require @is_outstream(stream)
**/
<*
@require @is_outstream(stream)
*>
macro void! write_be_short(stream, ushort s)
{
stream.write_byte((char)(s >> 8))!;
stream.write_byte((char)s)!;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro uint! read_be_uint(stream)
{
uint val = stream.read_byte()! << 24;
@@ -281,17 +281,17 @@ macro uint! read_be_uint(stream)
return val + stream.read_byte()!;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro int! read_be_int(stream)
{
return read_be_uint(stream);
}
/**
* @require @is_outstream(stream)
**/
<*
@require @is_outstream(stream)
*>
macro void! write_be_int(stream, uint s)
{
stream.write_byte((char)(s >> 24))!;
@@ -300,9 +300,9 @@ macro void! write_be_int(stream, uint s)
stream.write_byte((char)s)!;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro ulong! read_be_ulong(stream)
{
ulong val = (ulong)stream.read_byte()! << 56;
@@ -315,17 +315,17 @@ macro ulong! read_be_ulong(stream)
return val + stream.read_byte()!;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro long! read_be_long(stream)
{
return read_be_ulong(stream);
}
/**
* @require @is_outstream(stream)
**/
<*
@require @is_outstream(stream)
*>
macro void! write_be_long(stream, ulong s)
{
stream.write_byte((char)(s >> 56))!;
@@ -338,9 +338,9 @@ macro void! write_be_long(stream, ulong s)
stream.write_byte((char)s)!;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro uint128! read_be_uint128(stream)
{
uint128 val = (uint128)stream.read_byte()! << 120;
@@ -361,17 +361,17 @@ macro uint128! read_be_uint128(stream)
return val + stream.read_byte()!;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro int128! read_be_int128(stream)
{
return read_be_uint128(stream);
}
/**
* @require @is_outstream(stream)
**/
<*
@require @is_outstream(stream)
*>
macro void! write_be_int128(stream, uint128 s)
{
stream.write_byte((char)(s >> 120))!;
@@ -392,19 +392,19 @@ macro void! write_be_int128(stream, uint128 s)
stream.write_byte((char)s)!;
}
/**
* @require @is_outstream(stream)
* @require data.len < 256 "Data exceeded 255"
**/
<*
@require @is_outstream(stream)
@require data.len < 256 "Data exceeded 255"
*>
macro usz! write_tiny_bytearray(stream, char[] data)
{
stream.write_byte((char)data.len)!;
return stream.write(data) + 1;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro char[]! read_tiny_bytearray(stream, Allocator allocator)
{
int len = stream.read_byte()!;
@@ -414,19 +414,19 @@ macro char[]! read_tiny_bytearray(stream, Allocator allocator)
return data;
}
/**
* @require @is_outstream(stream)
* @require data.len < 0x1000 "Data exceeded 65535"
**/
<*
@require @is_outstream(stream)
@require data.len < 0x1000 "Data exceeded 65535"
*>
macro usz! write_short_bytearray(stream, char[] data)
{
io::write_be_short(stream, (ushort)data.len)!;
return stream.write(data) + 2;
}
/**
* @require @is_instream(stream)
**/
<*
@require @is_instream(stream)
*>
macro char[]! read_short_bytearray(stream, Allocator allocator)
{
int len = io::read_be_ushort(stream)!;
@@ -436,9 +436,9 @@ macro char[]! read_short_bytearray(stream, Allocator allocator)
return data;
}
/**
* Wrap bytes for reading using io functions.
**/
<*
Wrap bytes for reading using io functions.
*>
fn ByteReader wrap_bytes(char[] bytes)
{
return { bytes, 0 };