1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use ndata::dataobject::*;

pub fn execute(o: DataObject) -> DataObject {
let a0 = o.get_string("a");
let ax = hex_encode(a0);
let mut o = DataObject::new();
o.put_str("a", &ax);
o
}

pub fn hex_encode(a:String) -> String {
let mut s = "".to_string();
let chars = a.chars();
for c in chars {
  if is_ok(c) {
    s.push(c);
  }
  else {
    let x = c as i32;
    s += "%";
    s += &format!( "{:0X}", x);
  }
}
s
}

fn is_ok(c:char) -> bool {
  (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')


}