Truncate a file: Difference between revisions

Added Rust to this problem
(Added Wren)
(Added Rust to this problem)
Line 1,128:
# Just truncate a file to 567 bytes.
File.truncate("file", 567)</lang>
 
=={{header|Rust}}==
<lang rust>use std::path::Path;
use std::fs;
 
fn truncate_file<P: AsRef<Path>>(filename: P, filesize: usize) -> Result<(), Error> {
use Error::*;
let file = fs::read(&filename).or(Err(NotFound))?;
 
if filesize > file.len() {
return Err(FilesizeTooSmall)
}
 
fs::write(&filename, &file[..filesize]).or(Err(UnableToWrite))?;
Ok(())
}
 
#[derive(Debug)]
enum Error {
/// File not found
NotFound,
/// Truncated size would be larger than the current size
FilesizeTooSmall,
/// Likely due to having read but not write permissions
UnableToWrite,
}</lang>
 
=={{header|Scala}}==