mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Switch to <* *> docs. Fix issue with dynamically loaded C3 libs with other C3 code.
This commit is contained in:
committed by
Christoffer Lerno
parent
9f6a4eb300
commit
31cd839063
@@ -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 };
|
||||
|
||||
Reference in New Issue
Block a user