ruston 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf5c0f1352fca5ac06d4941ed73e96eaf9f7094e2cc87e48ac731224e9756850
4
- data.tar.gz: 7774865e19f036dc54fcd0f087ff8dff7af7ee3a291f04f7a541796ace67a8d1
3
+ metadata.gz: a3ed8acd3e6c5446a5a0d0492375522fe96437cc1fb0a361e3e580a6bc452b10
4
+ data.tar.gz: 9ed019a76e747a31f8da363fdfe92ab57873e62449283eb7d1a60b8217284461
5
5
  SHA512:
6
- metadata.gz: b8ba536beb1a1b3a18af9061ab073622edee3222161281a3146e18d28eda1872fe404371891cc45f82dea28c89ceb6172ceac4b0d29e55da3b69b23cf400b134
7
- data.tar.gz: 263de613a6e15a1179fc2ab3e9e4d877c0266ffa8ed3da1ae697b0b9f251ac214fd7b6adb527e344618a95f7c382dc609491367b059bbf63e2e417edf65c1d36
6
+ metadata.gz: 37c6b9c3aa5ec42c0126810e9597ef2a48d5156142e5a6e9ddecf5c2fdc9f13a05350da338ccbe39e85697bac092f6f9a02d462bc1216ee30085f9e8ef2854bd
7
+ data.tar.gz: 18a282625f2553dab7fc638c3d241f68d83f10b80a21a9c1b5f44d2fb8c84e68a7736be883b948cb6bbcae13a9c61beac8fb5d586a665f82e9ba32067b3ac78d
@@ -0,0 +1,22 @@
1
+ name: Rust
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ # pull_request:
7
+ # branches: [ "master" ]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+
12
+ jobs:
13
+ build:
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - name: Build
20
+ run: cargo build --verbose
21
+ - name: Run tests
22
+ run: cargo test --verbose
data/Gemfile CHANGED
@@ -7,3 +7,5 @@ gemspec
7
7
 
8
8
  gem "bundler", ">= 1.17"
9
9
  gem "rake", ">= 10.0"
10
+
11
+ gem "json", ">= 2"
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruston (0.0.1)
4
+ ruston (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ json (2.6.2)
9
10
  rake (13.0.6)
10
11
 
11
12
  PLATFORMS
@@ -13,6 +14,7 @@ PLATFORMS
13
14
 
14
15
  DEPENDENCIES
15
16
  bundler (>= 1.17)
17
+ json (>= 2)
16
18
  rake (>= 10.0)
17
19
  ruston!
18
20
 
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Ruston
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/ruston`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ [![Rust](https://github.com/udzura/ruston/actions/workflows/rust.yml/badge.svg)](https://github.com/udzura/ruston/actions/workflows/rust.yml) [![Gem](https://badgen.net/rubygems/v/ruston)](https://rubygems.org/gems/ruston)
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ A Rust-made JSON parser example
6
6
 
7
7
  ## Installation
8
8
 
9
- Add this line to your application's Gemfile:
9
+ Requires cargo and RubyGems >= 3.4.0.dev
10
10
 
11
11
  ```ruby
12
12
  gem 'ruston'
@@ -22,7 +22,7 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ See examples/rb .
26
26
 
27
27
  ## Development
28
28
 
@@ -0,0 +1,45 @@
1
+ require 'benchmark'
2
+ require 'ruston'
3
+ require 'json'
4
+
5
+ N = 100000
6
+ M = 10
7
+
8
+ Benchmark.bmbm do |x|
9
+ SIMPLE = %q({"Hello": "world", "lireral": true, "numeric": 1})
10
+ r = Ruston.new
11
+
12
+ x.report("ruston obj") { N.times { Ruston.new.parse(SIMPLE) } }
13
+ x.report("ruston2 obj") { N.times { r.parse(SIMPLE) } }
14
+ x.report("json obj") { N.times { JSON.parse(SIMPLE) } }
15
+
16
+ ARRAY = %q([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
17
+
18
+ x.report("ruston ary") { N.times { Ruston.new.parse(ARRAY) } }
19
+ x.report("ruston2 ary") { N.times { r.parse(ARRAY) } }
20
+ x.report("json ary") { N.times { JSON.parse(ARRAY) } }
21
+
22
+ TRUE = %q(true)
23
+
24
+ x.report("ruston true") { N.times { Ruston.new.parse(TRUE) } }
25
+ x.report("ruston2 true") { N.times { r.parse(TRUE) } }
26
+ x.report("json true") { N.times { JSON.parse(TRUE) } }
27
+
28
+ NUM = %q(123)
29
+
30
+ x.report("ruston num") { N.times { Ruston.new.parse(NUM) } }
31
+ x.report("ruston2 num") { N.times { r.parse(NUM) } }
32
+ x.report("json num") { N.times { JSON.parse(NUM) } }
33
+
34
+ STR = %q("true")
35
+
36
+ x.report("ruston str") { N.times { Ruston.new.parse(STR) } }
37
+ x.report("ruston2 str") { N.times { r.parse(STR) } }
38
+ x.report("json str") { N.times { JSON.parse(STR) } }
39
+
40
+ BIG = File.read("examples/rb/big.json")
41
+
42
+ x.report("ruston big") { M.times { Ruston.new.parse(BIG) } }
43
+ x.report("ruston2 big") { M.times { r.parse(BIG) } }
44
+ x.report("json big") { M.times { JSON.parse(BIG) } }
45
+ end
@@ -0,0 +1 @@
1
+ {"key0":1,"key1":2,"key2":3,"key3":4,"key4":5,"key5":6,"key6":7,"key7":8,"key8":9,"key9":10,"key10":11,"key11":12,"key12":13,"key13":14,"key14":15,"key15":16,"key16":17,"key17":18,"key18":19,"key19":20,"key20":21,"key21":22,"key22":23,"key23":24,"key24":25,"key25":26,"key26":27,"key27":28,"key28":29,"key29":30,"key30":31,"key31":32,"key32":33,"key33":34,"key34":35,"key35":36,"key36":37,"key37":38,"key38":39,"key39":40,"key40":41,"key41":42,"key42":43,"key43":44,"key44":45,"key45":46,"key46":47,"key47":48,"key48":49,"key49":50,"key50":51,"key51":52,"key52":53,"key53":54,"key54":55,"key55":56,"key56":57,"key57":58,"key58":59,"key59":60,"key60":61,"key61":62,"key62":63,"key63":64,"key64":65,"key65":66,"key66":67,"key67":68,"key68":69,"key69":70,"key70":71,"key71":72,"key72":73,"key73":74,"key74":75,"key75":76,"key76":77,"key77":78,"key78":79,"key79":80,"key80":81,"key81":82,"key82":83,"key83":84,"key84":85,"key85":86,"key86":87,"key87":88,"key88":89,"key89":90,"key90":91,"key91":92,"key92":93,"key93":94,"key94":95,"key95":96,"key96":97,"key97":98,"key98":99,"key99":100,"key100":101,"key101":102,"key102":103,"key103":104,"key104":105,"key105":106,"key106":107,"key107":108,"key108":109,"key109":110,"key110":111,"key111":112,"key112":113,"key113":114,"key114":115,"key115":116,"key116":117,"key117":118,"key118":119,"key119":120,"key120":121,"key121":122,"key122":123,"key123":124,"key124":125,"key125":126,"key126":127,"key127":128,"key128":129,"key129":130,"key130":131,"key131":132,"key132":133,"key133":134,"key134":135,"key135":136,"key136":137,"key137":138,"key138":139,"key139":140,"key140":141,"key141":142,"key142":143,"key143":144,"key144":145,"key145":146,"key146":147,"key147":148,"key148":149,"key149":150,"key150":151,"key151":152,"key152":153,"key153":154,"key154":155,"key155":156,"key156":157,"key157":158,"key158":159,"key159":160,"key160":161,"key161":162,"key162":163,"key163":164,"key164":165,"key165":166,"key166":167,"key167":168,"key168":169,"key169":170,"key170":171,"key171":172,"key172":173,"key173":174,"key174":175,"key175":176,"key176":177,"key177":178,"key178":179,"key179":180,"key180":181,"key181":182,"key182":183,"key183":184,"key184":185,"key185":186,"key186":187,"key187":188,"key188":189,"key189":190,"key190":191,"key191":192,"key192":193,"key193":194,"key194":195,"key195":196,"key196":197,"key197":198,"key198":199,"key199":200,"key200":201,"key201":202,"key202":203,"key203":204,"key204":205,"key205":206,"key206":207,"key207":208,"key208":209,"key209":210,"key210":211,"key211":212,"key212":213,"key213":214,"key214":215,"key215":216,"key216":217,"key217":218,"key218":219,"key219":220,"key220":221,"key221":222,"key222":223,"key223":224,"key224":225,"key225":226,"key226":227,"key227":228,"key228":229,"key229":230,"key230":231,"key231":232,"key232":233,"key233":234,"key234":235,"key235":236,"key236":237,"key237":238,"key238":239,"key239":240,"key240":241,"key241":242,"key242":243,"key243":244,"key244":245,"key245":246,"key246":247,"key247":248,"key248":249,"key249":250,"key250":251,"key251":252,"key252":253,"key253":254,"key254":255,"key255":256,"key256":257,"key257":258,"key258":259,"key259":260,"key260":261,"key261":262,"key262":263,"key263":264,"key264":265,"key265":266,"key266":267,"key267":268,"key268":269,"key269":270,"key270":271,"key271":272,"key272":273,"key273":274,"key274":275,"key275":276,"key276":277,"key277":278,"key278":279,"key279":280,"key280":281,"key281":282,"key282":283,"key283":284,"key284":285,"key285":286,"key286":287,"key287":288,"key288":289,"key289":290,"key290":291,"key291":292,"key292":293,"key293":294,"key294":295,"key295":296,"key296":297,"key297":298,"key298":299,"key299":300,"key300":301,"key301":302,"key302":303,"key303":304,"key304":305,"key305":306,"key306":307,"key307":308,"key308":309,"key309":310,"key310":311,"key311":312,"key312":313,"key313":314,"key314":315,"key315":316,"key316":317,"key317":318,"key318":319,"key319":320,"key320":321,"key321":322,"key322":323,"key323":324,"key324":325,"key325":326,"key326":327,"key327":328,"key328":329,"key329":330,"key330":331,"key331":332,"key332":333,"key333":334,"key334":335,"key335":336,"key336":337,"key337":338,"key338":339,"key339":340,"key340":341,"key341":342,"key342":343,"key343":344,"key344":345,"key345":346,"key346":347,"key347":348,"key348":349,"key349":350,"key350":351,"key351":352,"key352":353,"key353":354,"key354":355,"key355":356,"key356":357,"key357":358,"key358":359,"key359":360,"key360":361,"key361":362,"key362":363,"key363":364,"key364":365,"key365":366,"key366":367,"key367":368,"key368":369,"key369":370,"key370":371,"key371":372,"key372":373,"key373":374,"key374":375,"key375":376,"key376":377,"key377":378,"key378":379,"key379":380,"key380":381,"key381":382,"key382":383,"key383":384,"key384":385,"key385":386,"key386":387,"key387":388,"key388":389,"key389":390,"key390":391,"key391":392,"key392":393,"key393":394,"key394":395,"key395":396,"key396":397,"key397":398,"key398":399,"key399":400,"key400":401,"key401":402,"key402":403,"key403":404,"key404":405,"key405":406,"key406":407,"key407":408,"key408":409,"key409":410,"key410":411,"key411":412,"key412":413,"key413":414,"key414":415,"key415":416,"key416":417,"key417":418,"key418":419,"key419":420,"key420":421,"key421":422,"key422":423,"key423":424,"key424":425,"key425":426,"key426":427,"key427":428,"key428":429,"key429":430,"key430":431,"key431":432,"key432":433,"key433":434,"key434":435,"key435":436,"key436":437,"key437":438,"key438":439,"key439":440,"key440":441,"key441":442,"key442":443,"key443":444,"key444":445,"key445":446,"key446":447,"key447":448,"key448":449,"key449":450,"key450":451,"key451":452,"key452":453,"key453":454,"key454":455,"key455":456,"key456":457,"key457":458,"key458":459,"key459":460,"key460":461,"key461":462,"key462":463,"key463":464,"key464":465,"key465":466,"key466":467,"key467":468,"key468":469,"key469":470,"key470":471,"key471":472,"key472":473,"key473":474,"key474":475,"key475":476,"key476":477,"key477":478,"key478":479,"key479":480,"key480":481,"key481":482,"key482":483,"key483":484,"key484":485,"key485":486,"key486":487,"key487":488,"key488":489,"key489":490,"key490":491,"key491":492,"key492":493,"key493":494,"key494":495,"key495":496,"key496":497,"key497":498,"key498":499,"key499":500,"key500":501,"key501":502,"key502":503,"key503":504,"key504":505,"key505":506,"key506":507,"key507":508,"key508":509,"key509":510,"key510":511,"key511":512,"key512":513,"key513":514,"key514":515,"key515":516,"key516":517,"key517":518,"key518":519,"key519":520,"key520":521,"key521":522,"key522":523,"key523":524,"key524":525,"key525":526,"key526":527,"key527":528,"key528":529,"key529":530,"key530":531,"key531":532,"key532":533,"key533":534,"key534":535,"key535":536,"key536":537,"key537":538,"key538":539,"key539":540,"key540":541,"key541":542,"key542":543,"key543":544,"key544":545,"key545":546,"key546":547,"key547":548,"key548":549,"key549":550,"key550":551,"key551":552,"key552":553,"key553":554,"key554":555,"key555":556,"key556":557,"key557":558,"key558":559,"key559":560,"key560":561,"key561":562,"key562":563,"key563":564,"key564":565,"key565":566,"key566":567,"key567":568,"key568":569,"key569":570,"key570":571,"key571":572,"key572":573,"key573":574,"key574":575,"key575":576,"key576":577,"key577":578,"key578":579,"key579":580,"key580":581,"key581":582,"key582":583,"key583":584,"key584":585,"key585":586,"key586":587,"key587":588,"key588":589,"key589":590,"key590":591,"key591":592,"key592":593,"key593":594,"key594":595,"key595":596,"key596":597,"key597":598,"key598":599,"key599":600,"key600":601,"key601":602,"key602":603,"key603":604,"key604":605,"key605":606,"key606":607,"key607":608,"key608":609,"key609":610,"key610":611,"key611":612,"key612":613,"key613":614,"key614":615,"key615":616,"key616":617,"key617":618,"key618":619,"key619":620,"key620":621,"key621":622,"key622":623,"key623":624,"key624":625,"key625":626,"key626":627,"key627":628,"key628":629,"key629":630,"key630":631,"key631":632,"key632":633,"key633":634,"key634":635,"key635":636,"key636":637,"key637":638,"key638":639,"key639":640,"key640":641,"key641":642,"key642":643,"key643":644,"key644":645,"key645":646,"key646":647,"key647":648,"key648":649,"key649":650,"key650":651,"key651":652,"key652":653,"key653":654,"key654":655,"key655":656,"key656":657,"key657":658,"key658":659,"key659":660,"key660":661,"key661":662,"key662":663,"key663":664,"key664":665,"key665":666,"key666":667,"key667":668,"key668":669,"key669":670,"key670":671,"key671":672,"key672":673,"key673":674,"key674":675,"key675":676,"key676":677,"key677":678,"key678":679,"key679":680,"key680":681,"key681":682,"key682":683,"key683":684,"key684":685,"key685":686,"key686":687,"key687":688,"key688":689,"key689":690,"key690":691,"key691":692,"key692":693,"key693":694,"key694":695,"key695":696,"key696":697,"key697":698,"key698":699,"key699":700,"key700":701,"key701":702,"key702":703,"key703":704,"key704":705,"key705":706,"key706":707,"key707":708,"key708":709,"key709":710,"key710":711,"key711":712,"key712":713,"key713":714,"key714":715,"key715":716,"key716":717,"key717":718,"key718":719,"key719":720,"key720":721,"key721":722,"key722":723,"key723":724,"key724":725,"key725":726,"key726":727,"key727":728,"key728":729,"key729":730,"key730":731,"key731":732,"key732":733,"key733":734,"key734":735,"key735":736,"key736":737,"key737":738,"key738":739,"key739":740,"key740":741,"key741":742,"key742":743,"key743":744,"key744":745,"key745":746,"key746":747,"key747":748,"key748":749,"key749":750,"key750":751,"key751":752,"key752":753,"key753":754,"key754":755,"key755":756,"key756":757,"key757":758,"key758":759,"key759":760,"key760":761,"key761":762,"key762":763,"key763":764,"key764":765,"key765":766,"key766":767,"key767":768,"key768":769,"key769":770,"key770":771,"key771":772,"key772":773,"key773":774,"key774":775,"key775":776,"key776":777,"key777":778,"key778":779,"key779":780,"key780":781,"key781":782,"key782":783,"key783":784,"key784":785,"key785":786,"key786":787,"key787":788,"key788":789,"key789":790,"key790":791,"key791":792,"key792":793,"key793":794,"key794":795,"key795":796,"key796":797,"key797":798,"key798":799,"key799":800,"key800":801,"key801":802,"key802":803,"key803":804,"key804":805,"key805":806,"key806":807,"key807":808,"key808":809,"key809":810,"key810":811,"key811":812,"key812":813,"key813":814,"key814":815,"key815":816,"key816":817,"key817":818,"key818":819,"key819":820,"key820":821,"key821":822,"key822":823,"key823":824,"key824":825,"key825":826,"key826":827,"key827":828,"key828":829,"key829":830,"key830":831,"key831":832,"key832":833,"key833":834,"key834":835,"key835":836,"key836":837,"key837":838,"key838":839,"key839":840,"key840":841,"key841":842,"key842":843,"key843":844,"key844":845,"key845":846,"key846":847,"key847":848,"key848":849,"key849":850,"key850":851,"key851":852,"key852":853,"key853":854,"key854":855,"key855":856,"key856":857,"key857":858,"key858":859,"key859":860,"key860":861,"key861":862,"key862":863,"key863":864,"key864":865,"key865":866,"key866":867,"key867":868,"key868":869,"key869":870,"key870":871,"key871":872,"key872":873,"key873":874,"key874":875,"key875":876,"key876":877,"key877":878,"key878":879,"key879":880,"key880":881,"key881":882,"key882":883,"key883":884,"key884":885,"key885":886,"key886":887,"key887":888,"key888":889,"key889":890,"key890":891,"key891":892,"key892":893,"key893":894,"key894":895,"key895":896,"key896":897,"key897":898,"key898":899,"key899":900,"key900":901,"key901":902,"key902":903,"key903":904,"key904":905,"key905":906,"key906":907,"key907":908,"key908":909,"key909":910,"key910":911,"key911":912,"key912":913,"key913":914,"key914":915,"key915":916,"key916":917,"key917":918,"key918":919,"key919":920,"key920":921,"key921":922,"key922":923,"key923":924,"key924":925,"key925":926,"key926":927,"key927":928,"key928":929,"key929":930,"key930":931,"key931":932,"key932":933,"key933":934,"key934":935,"key935":936,"key936":937,"key937":938,"key938":939,"key939":940,"key940":941,"key941":942,"key942":943,"key943":944,"key944":945,"key945":946,"key946":947,"key947":948,"key948":949,"key949":950,"key950":951,"key951":952,"key952":953,"key953":954,"key954":955,"key955":956,"key956":957,"key957":958,"key958":959,"key959":960,"key960":961,"key961":962,"key962":963,"key963":964,"key964":965,"key965":966,"key966":967,"key967":968,"key968":969,"key969":970,"key970":971,"key971":972,"key972":973,"key973":974,"key974":975,"key975":976,"key976":977,"key977":978,"key978":979,"key979":980,"key980":981,"key981":982,"key982":983,"key983":984,"key984":985,"key985":986,"key986":987,"key987":988,"key988":989,"key989":990,"key990":991,"key991":992,"key992":993,"key993":994,"key994":995,"key995":996,"key996":997,"key997":998,"key998":999,"key999":1000}
data/examples/ruby_run.rs CHANGED
@@ -1,4 +1,5 @@
1
1
  extern crate ruston;
2
+ use rb_sys as rb;
2
3
 
3
4
  fn main() {
4
5
  // let json = "
@@ -1,3 +1,3 @@
1
1
  class Ruston
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/src/json.rs CHANGED
@@ -131,6 +131,11 @@ pub mod lexer {
131
131
  self.start = self.current
132
132
  }
133
133
  ' ' | '\t' => self.start = self.current,
134
+ '0' => {
135
+ // '0' is just 0, not consider 0.1 ... or 0100 ...
136
+ // for now!
137
+ self.push_token(TokenType::Number);
138
+ }
134
139
  '1'..='9' => {
135
140
  while is_digit(self.peek()) {
136
141
  self.advance()?;
data/src/json_test.rs ADDED
@@ -0,0 +1,57 @@
1
+ #[cfg(test)]
2
+ pub mod test {
3
+ use crate::json;
4
+ use std::error::Error;
5
+
6
+ #[test]
7
+ fn test_literal() -> Result<(), Box<dyn Error>> {
8
+ let ret = json::parse("true");
9
+ assert!(match ret {
10
+ json::Value::True => true,
11
+ _ => false,
12
+ });
13
+
14
+ let ret = json::parse("123");
15
+ assert!(match ret {
16
+ json::Value::Int(i) => {
17
+ assert_eq!(123, i);
18
+ true
19
+ }
20
+ _ => false,
21
+ });
22
+
23
+ let ret = json::parse("0");
24
+ assert!(match ret {
25
+ json::Value::Int(i) => {
26
+ assert_eq!(0, i);
27
+ true
28
+ }
29
+ _ => false,
30
+ });
31
+
32
+ let ret = json::parse("\"Hola\"");
33
+ assert!(match ret {
34
+ json::Value::Str(s) => {
35
+ assert_eq!("Hola", &s);
36
+ true
37
+ }
38
+ _ => false,
39
+ });
40
+
41
+ let ret = json::parse("[1, 2, 3, false]");
42
+ assert!(match ret {
43
+ json::Value::Array(vec) => {
44
+ assert_eq!(4, vec.len());
45
+ true
46
+ }
47
+ _ => false,
48
+ });
49
+
50
+ let ret = json::parse("{\"foo\": true, \"bar\": 123}");
51
+ assert!(match ret {
52
+ json::Value::Object(_, _) => true,
53
+ _ => false,
54
+ });
55
+ Ok(())
56
+ }
57
+ }
data/src/lib.rs CHANGED
@@ -1,4 +1,7 @@
1
1
  pub mod json;
2
+ #[cfg(test)]
3
+ pub mod json_test;
4
+
2
5
  pub mod ruby;
3
6
 
4
7
  use std::slice;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruston
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uchio Kondo
@@ -18,6 +18,7 @@ extensions:
18
18
  - Cargo.toml
19
19
  extra_rdoc_files: []
20
20
  files:
21
+ - ".github/workflows/rust.yml"
21
22
  - ".gitignore"
22
23
  - ".ruby-version"
23
24
  - Cargo.lock
@@ -31,12 +32,15 @@ files:
31
32
  - bin/setup
32
33
  - examples/lex.rs
33
34
  - examples/parser.rs
35
+ - examples/rb/bench-ruston.rb
36
+ - examples/rb/big.json
34
37
  - examples/rb/parsejson.rb
35
38
  - examples/ruby_run.rs
36
39
  - lib/ruston.rb
37
40
  - lib/ruston/version.rb
38
41
  - ruston.gemspec
39
42
  - src/json.rs
43
+ - src/json_test.rs
40
44
  - src/lib.rs
41
45
  - src/ruby.rs
42
46
  homepage: https://github.com/udzura/ruston