MCPcopy Create free account
hub / github.com/bendudson/EuraliOS / query

Method query

euralios_std/src/fs.rs:246–273  ·  view source on GitHub ↗

Query a file handle EuraliOS only

(&self)

Source from the content-addressed store, hash-verified

244 ///
245 /// EuraliOS only
246 pub fn query(&self) -> Result<FileQuery, SyscallError> {
247 match rcall(&self.0,
248 message::QUERY,
249 0.into(), 0.into(), None) {
250 Ok((message::JSON,
251 MessageData::Value(length),
252 MessageData::MemoryHandle(handle))) => {
253
254 let u8_slice = handle.as_slice::<u8>(length as usize);
255 if let Ok(s) = str::from_utf8(u8_slice) {
256 match serde_json::from_str::<Value>(s) {
257 Ok(v) => Ok(FileQuery(v)),
258 Err(err) => {
259 println!("File::query error {:?} parsing {}",
260 err, s);
261 Err(syscalls::SYSCALL_ERROR_PARAM)
262 }
263 }
264 } else {
265 Err(syscalls::SYSCALL_ERROR_PARAM)
266 }
267 },
268 message => {
269 println!("[query] received {:?}", message);
270 Err(syscalls::SYSCALL_ERROR_PARAM)
271 }
272 }
273 }
274
275 /// Remote call. Send a message and wait for a reply
276 ///

Callers 2

read_dirFunction · 0.45
handle_directoryFunction · 0.45

Calls 2

rcallFunction · 0.85
FileQueryClass · 0.85

Tested by

no test coverage detected