// from 7.12.2 f) of 13211-1:1995
#[derive(Debug, Clone, Copy)]
pub enum RepFlag {
- // Character,
+ Character,
CharacterCode,
InCharacterCode,
MaxArity,
impl RepFlag {
pub fn as_str(self) -> &'static str {
match self {
- // RepFlag::Character => "character",
+ RepFlag::Character => "character",
RepFlag::CharacterCode => "character_code",
RepFlag::InCharacterCode => "in_character_code",
RepFlag::MaxArity => "max_arity",
if let Ok(entries) = fs::read_dir(path) {
for entry in entries {
if let Ok(entry) = entry {
- let name = entry.file_name().into_string().unwrap();
- files.push(self.heap.put_complete_string(&name));
+ match entry.file_name().into_string() {
+ Ok(name) => { files.push(self.heap.put_complete_string(&name)); }
+ _ => {
+ let stub = MachineError::functor_stub(clause_name!("directory_files"), 2);
+ let err = MachineError::representation_error(RepFlag::Character);
+ let err = self.error_form(err, stub);
+
+ return Err(err);
+ }
+ }
}
}
}