diff --git a/examples/interactive/cli-platform/src/lib.rs b/examples/interactive/cli-platform/src/lib.rs index 96d010fa3f..683c1112f1 100644 --- a/examples/interactive/cli-platform/src/lib.rs +++ b/examples/interactive/cli-platform/src/lib.rs @@ -391,3 +391,25 @@ pub extern "C" fn roc_fx_envVarUtf8(key: &RocStr) -> RocStr { RocStr::from(val.as_str()) } + +#[no_mangle] +pub extern "C" fn roc_fx_writeUtf8(path: &RocStr, string: &RocStr) { + write_bytes(path, string.as_str().as_bytes()) +} + +#[no_mangle] +pub extern "C" fn roc_fx_writeBytes(path: &RocStr, bytes: &RocList) { + write_bytes(path, bytes.as_slice()) +} + +fn write_bytes(path: &RocStr, bytes: &[u8]) { + // TODO return Result + let mut file = File::create(path.as_str()).unwrap(); + file.write_all(bytes).unwrap(); +} + +#[no_mangle] +pub extern "C" fn roc_fx_errLine(line: &RocStr) { + let string = line.as_str(); + eprintln!("{}", string); +}