mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
Added read_any/write_any.
This commit is contained in:
@@ -102,6 +102,16 @@ fn usz! File.read(self, char[] buffer)
|
||||
return os::native_fread(self.file, buffer);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ref "the object to read into."
|
||||
* @require ref.ptr != null
|
||||
* @ensure return == ref.type.sizeof
|
||||
*/
|
||||
fn usz! File.read_any(self, any ref)
|
||||
{
|
||||
return self.read(((char*)ref.ptr)[:ref.type.sizeof]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param [out] buffer
|
||||
* @require self.file `File must be initialized`
|
||||
@@ -111,6 +121,16 @@ fn usz! File.write(self, char[] buffer)
|
||||
return os::native_fwrite(self.file, buffer);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ref "the object to write."
|
||||
* @require ref.ptr != null
|
||||
* @ensure return == ref.type.sizeof
|
||||
*/
|
||||
fn usz! File.write_any(self, any ref)
|
||||
{
|
||||
return self.write(((char*)ref.ptr)[:ref.type.sizeof]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @require self.file `File must be initialized`
|
||||
*/
|
||||
|
||||
@@ -77,6 +77,22 @@ fn usz! Stream.available(self) @inline
|
||||
return IoError.NOT_SEEKABLE?;
|
||||
}
|
||||
|
||||
fn usz! Stream.read_any(self, any ref)
|
||||
{
|
||||
return self.read(((char*)ref.ptr)[:ref.type.sizeof]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ref "the object to write."
|
||||
* @require ref.ptr != null
|
||||
* @ensure return == ref.type.sizeof
|
||||
*/
|
||||
fn usz! Stream.write_any(self, any ref)
|
||||
{
|
||||
return self.write(((char*)ref.ptr)[:ref.type.sizeof]);
|
||||
}
|
||||
|
||||
|
||||
fn usz! Stream.read(self, char[] buffer)
|
||||
{
|
||||
if (ReadStreamFn func = self.fns.read_fn) return func(self, buffer);
|
||||
|
||||
Reference in New Issue
Block a user