remove some uncessary allocations/copies
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
use std::collections::BTreeSet;
|
||||
use std::env;
|
||||
|
||||
#[derive(Debug)]
|
||||
@@ -8,9 +7,8 @@ pub struct MachineArgs {
|
||||
|
||||
impl MachineArgs {
|
||||
pub fn new() -> Self {
|
||||
let args: BTreeSet<String> = env::args().collect();
|
||||
Self {
|
||||
add_history: !args.contains("--no-add-history"),
|
||||
add_history: env::args().all(|arg| arg != "--no-add-history"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,14 +224,14 @@ impl Term {
|
||||
|
||||
let list = match tail {
|
||||
Term::Atom(atom) if atom == "[]" => match head {
|
||||
Term::Atom(ref a) if a.chars().collect::<Vec<_>>().len() == 1 => {
|
||||
Term::Atom(ref a) if a.chars().count() == 1 => {
|
||||
// Handle lists of char as strings
|
||||
Term::String(a.to_string())
|
||||
}
|
||||
_ => Term::List(vec![head]),
|
||||
},
|
||||
Term::List(elems) if elems.is_empty() => match head {
|
||||
Term::Atom(ref a) if a.chars().collect::<Vec<_>>().len() == 1 => {
|
||||
Term::Atom(ref a) if a.chars().count() == 1 => {
|
||||
// Handle lists of char as strings
|
||||
Term::String(a.to_string())
|
||||
},
|
||||
@@ -242,7 +242,7 @@ impl Term {
|
||||
Term::List(elems)
|
||||
},
|
||||
Term::String(mut elems) => match head {
|
||||
Term::Atom(ref a) if a.chars().collect::<Vec<_>>().len() == 1 => {
|
||||
Term::Atom(ref a) if a.chars().count() == 1 => {
|
||||
// Handle lists of char as strings
|
||||
elems.insert(0, a.chars().next().unwrap());
|
||||
Term::String(elems)
|
||||
|
||||
@@ -1842,9 +1842,7 @@ impl Machine {
|
||||
let err = self.machine_st.permission_error(
|
||||
Permission::Modify,
|
||||
atom!("static_procedure"),
|
||||
functor_stub(atom!(":"), 2)
|
||||
.into_iter()
|
||||
.collect::<MachineStub>(),
|
||||
functor_stub(atom!(":"), 2),
|
||||
);
|
||||
|
||||
self.machine_st
|
||||
|
||||
Reference in New Issue
Block a user