isorun 0.1.11 → 0.1.12

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: 724881750024f3660d4f7219113d5fe5a13bdb53c5e31edf8cad5bb4ef5bb5ff
4
- data.tar.gz: 156a1e08ccf8613c5652c7414c305d2d55c3080de11a6414f07e72817dc48240
3
+ metadata.gz: 9e2341a17cf7d54ef94287db152e38b7de35c45ca5822d3d6d384a0f3ce167f9
4
+ data.tar.gz: 030fddff91def684221eda73d6ebfa2c2359ef94604c8ffc6611de9f4b3a9370
5
5
  SHA512:
6
- metadata.gz: '09398ad2ec130ec4a559a3bf78d063c0b6a5c15cc0cf7ad6b745048598c6eb4b8f3add11e3c2e58f841d78f802ff13ebfd13b4017a50c8f14a8cd396a84161b9'
7
- data.tar.gz: cc650db902d6c942ec49743f76543a1812b5ef3772f953796902a27919a4ffd4a375ab0d5fc7c48c2d0bdc06ec44a96ff47993a9ca7a5e321eb10432208deced
6
+ metadata.gz: 0f9e9ad34f0af565d0e80ade1a77b2f0e7fe38bf712fa4fe7336f48008cfbdba018a68dd1951d531a6497cdacb815b4a093e0b99309db8559a317ed362d22626
7
+ data.tar.gz: d7a5412226d422e8a037d3ebf4649222d547dd9401f5f234fd52c845fc844b44644f5536a07662ec7d8684dec6c07fe1e154c1d922bb041ccd876a0ad95f807d
@@ -21,7 +21,7 @@ module Isorun
21
21
  # to this method
22
22
  # @param [Hash, nil] ctx Pass variables to render context
23
23
  # @return [String]
24
- def isorun_app(id, options = nil, ctx: nil) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
24
+ def isorun_app(id, options = nil, ctx: {}) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
25
25
  ActiveSupport::Notifications.instrument "start.render.isorun", { ts: Time.current }
26
26
 
27
27
  module_path = Isorun.config.module_resolver.call(id)
@@ -22,7 +22,7 @@ module Isorun
22
22
  # to this method
23
23
  # @param [Hash, nil] ctx Pass variables to render context
24
24
  # @return [String]
25
- def isorun_vite_app(id, options = nil, ctx: nil)
25
+ def isorun_vite_app(id, options = nil, ctx: {})
26
26
  ActiveSupport::Notifications.instrument "start.render.isorun", { ts: Time.current }
27
27
 
28
28
  # if id has a file extension, we extract the extension and reduce the ID
@@ -1,26 +1,26 @@
1
1
  [package]
2
2
  name = "isorun"
3
- version = "0.1.11"
3
+ version = "0.1.12"
4
4
  edition = "2021"
5
5
  authors = ["Hannes Moser <box@hannesmoser.at>"]
6
6
  homepage = "https://github.com/eliias/isorun"
7
7
  repository = "https://github.com/eliias/isorun"
8
8
 
9
9
  [dependencies]
10
- deno_console = "0.86.0"
11
- deno_core = "0.168.0"
12
- deno_fetch = "0.110.0"
13
- deno_runtime = "0.94.0"
14
- deno_url = "0.86.0"
15
- deno_web = "0.117.0"
16
- deno_webidl = "0.86.0"
10
+ deno_console = "0.98.0"
11
+ deno_core = "0.180.0"
12
+ deno_fetch = "0.122.0"
13
+ deno_runtime = "0.106.0"
14
+ deno_url = "0.98.0"
15
+ deno_web = "0.129.0"
16
+ deno_webidl = "0.98.0"
17
17
  lazy_static = "1.4.0"
18
- magnus = { git = "https://github.com/eliias/magnus", rev = "75e2ba89d12af8c51d2bbbb137da2eac3fc966e3" }
18
+ magnus = { git = "https://github.com/eliias/magnus", rev = "fdfc70bdb52ea614f6823e55a7fda3122e83d1d4" }
19
19
  tokio = { version = "1.21.1", features = ["full"] }
20
- v8 = "0.60.1"
20
+ v8 = "0.68.0"
21
21
 
22
22
  [dev-dependencies]
23
- magnus = { git = "https://github.com/eliias/magnus", rev = "75e2ba89d12af8c51d2bbbb137da2eac3fc966e3", features = ["embed"] }
23
+ magnus = { git = "https://github.com/eliias/magnus", rev = "fdfc70bdb52ea614f6823e55a7fda3122e83d1d4", features = ["embed"] }
24
24
 
25
25
  [lib]
26
26
  name = "isorun"
@@ -0,0 +1,24 @@
1
+ use crate::js::worker::WORKER;
2
+ use deno_core::error::AnyError;
3
+ use deno_core::serde_v8;
4
+ use deno_core::{op, ExtensionBuilder};
5
+
6
+ fn force_op_registration(ext: &mut ExtensionBuilder) {
7
+ ext.force_op_registration();
8
+ }
9
+
10
+ deno_core::extension!(
11
+ send_to_ruby,
12
+ ops = [op_send_to_ruby],
13
+ customizer = force_op_registration
14
+ );
15
+
16
+ #[allow(clippy::extra_unused_lifetimes)]
17
+ #[op(v8)]
18
+ fn op_send_to_ruby<'a>(
19
+ // do not remove the v8:: prefix, otherwise the macro complains
20
+ scope: &mut v8::HandleScope,
21
+ data: serde_v8::Value<'a>,
22
+ ) -> Result<serde_v8::Value<'a>, AnyError> {
23
+ WORKER.with(|worker| worker.send(scope, data))
24
+ }
@@ -0,0 +1,3 @@
1
+ pub(crate) mod isorun;
2
+
3
+ pub use crate::*;
@@ -35,7 +35,6 @@ impl Context {
35
35
  path: String,
36
36
  ) -> Result<isorun::module::Module, Error> {
37
37
  let realm = self.0.clone();
38
-
39
38
  WORKER
40
39
  .with(|worker| {
41
40
  worker
@@ -1,6 +1,6 @@
1
1
  use crate::isorun::function::Function;
2
2
  use crate::js;
3
- use magnus::{exception, Error};
3
+ use magnus::{exception, Error, IntoValue};
4
4
  use std::cell::RefCell;
5
5
 
6
6
  #[magnus::wrap(class = "Isorun::Module")]
@@ -27,7 +27,7 @@ impl Module {
27
27
  match module_item {
28
28
  js::module_item::ModuleItem::Value(v) => Ok(v.to_ruby().unwrap()),
29
29
  js::module_item::ModuleItem::Function(f) => {
30
- Ok(magnus::Value::from(Function(RefCell::from(f))))
30
+ Ok(Function(RefCell::from(f)).into_value())
31
31
  }
32
32
  }
33
33
  }
@@ -1,11 +1,8 @@
1
1
  use crate::js::worker::WORKER;
2
2
  use deno_core::error::AnyError;
3
3
  use magnus::r_hash::ForEach;
4
- use magnus::value::{Qfalse, Qtrue};
5
- use magnus::{
6
- Integer, RArray, RFloat, RHash, RString, RStruct, Symbol, Value, QFALSE,
7
- QNIL, QTRUE,
8
- };
4
+ use magnus::value::{qfalse, qnil, qtrue, Qfalse, Qtrue, ReprValue};
5
+ use magnus::{Integer, RArray, RFloat, RHash, RString, RStruct, Symbol, Value};
9
6
  use std::collections::HashMap;
10
7
  use v8::{Array, GetPropertyNamesArgs, Global, HandleScope, Local, Object};
11
8
 
@@ -15,31 +12,31 @@ pub fn convert_v8_to_ruby(
15
12
  ) -> Result<Value, AnyError> {
16
13
  let value = Local::new(scope, value);
17
14
  if value.is_null() {
18
- return Ok(Value::from(QNIL));
15
+ return Ok(qnil().as_value());
19
16
  }
20
17
 
21
18
  if value.is_int32() {
22
- return Ok(Value::from(Integer::from_i64(
23
- value.int32_value(scope).unwrap() as i64,
24
- )));
19
+ return Ok(Integer::from_i64(value.int32_value(scope).unwrap() as i64)
20
+ .as_value());
25
21
  }
26
22
 
27
23
  if value.is_number() {
28
- return Ok(Value::from(
29
- RFloat::from_f64(value.number_value(scope).unwrap()).unwrap(),
30
- ));
24
+ return Ok(RFloat::from_f64(value.number_value(scope).unwrap())
25
+ .unwrap()
26
+ .as_value());
31
27
  }
32
28
 
33
29
  if value.is_true() {
34
- return Ok(Value::from(QTRUE));
30
+ return Ok(qtrue().as_value());
35
31
  }
36
32
 
37
33
  if value.is_false() {
38
- return Ok(Value::from(QFALSE));
34
+ return Ok(qfalse().as_value());
39
35
  }
40
36
 
41
37
  if value.is_string() {
42
- return Ok(Value::from(value.to_rust_string_lossy(scope)));
38
+ let str = value.to_rust_string_lossy(scope);
39
+ return Ok(RString::new(str.as_str()).as_value());
43
40
  }
44
41
 
45
42
  if value.is_array() {
@@ -52,7 +49,7 @@ pub fn convert_v8_to_ruby(
52
49
  let val = convert_v8_to_ruby(&global_raw, scope).unwrap();
53
50
  r_arr.push(val).expect("cannot add item to array");
54
51
  }
55
- return Ok(Value::from(r_arr));
52
+ return Ok(r_arr.as_value());
56
53
  }
57
54
 
58
55
  if value.is_object() {
@@ -71,10 +68,10 @@ pub fn convert_v8_to_ruby(
71
68
  let val = convert_v8_to_ruby(&global_raw_val, scope).unwrap();
72
69
  r_hash.aset(key, val).expect("cannot set item to hash");
73
70
  }
74
- return Ok(Value::from(r_hash));
71
+ return Ok(r_hash.as_value());
75
72
  }
76
73
 
77
- Ok(Value::from(QNIL))
74
+ Ok(qnil().as_value())
78
75
  }
79
76
 
80
77
  pub fn convert_ruby_to_v8<'s>(
@@ -1,7 +1,9 @@
1
+ use crate::ext;
1
2
  use crate::isorun::utils::{convert_ruby_to_v8, convert_v8_to_ruby};
3
+ use deno_core::anyhow::Context;
2
4
  use deno_core::error::AnyError;
3
5
  use deno_core::serde_v8::from_v8;
4
- use deno_core::{op, serde_v8, Extension, FsModuleLoader, JsRealm, ModuleId};
6
+ use deno_core::{serde_v8, FsModuleLoader, JsRealm, ModuleId};
5
7
  use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel;
6
8
  use deno_runtime::permissions::PermissionsContainer;
7
9
  use deno_runtime::worker::{MainWorker, WorkerOptions};
@@ -50,8 +52,11 @@ impl Worker {
50
52
  let module_id = {
51
53
  let mut worker = self.worker.borrow_mut();
52
54
 
53
- let module_specifier =
54
- deno_core::resolve_url_or_path(path).unwrap();
55
+ let module_specifier = deno_core::resolve_url_or_path(
56
+ path,
57
+ &env::current_dir().context("Unable to get CWD")?,
58
+ )
59
+ .unwrap();
55
60
  let module_id = self
56
61
  .runtime
57
62
  .block_on(worker.preload_side_module(&module_specifier))?;
@@ -142,12 +147,12 @@ impl Worker {
142
147
  Some(value)
143
148
  }
144
149
 
145
- fn send<'a>(
150
+ pub(crate) fn send<'a>(
146
151
  &self,
147
152
  scope: &mut HandleScope,
148
153
  value: serde_v8::Value<'a>,
149
154
  ) -> Result<serde_v8::Value<'a>, AnyError> {
150
- if let None = self.ruby_receiver.borrow_mut().as_mut() {
155
+ if self.ruby_receiver.borrow_mut().as_mut().is_none() {
151
156
  return Err(AnyError::msg(
152
157
  "Cannot send to ruby. The ruby receiver is missing, please \
153
158
  initialize and set one before calling into Ruby?",
@@ -160,27 +165,25 @@ impl Worker {
160
165
  self.ruby_context.borrow_mut().as_mut(),
161
166
  self.ruby_receiver.borrow_mut().as_mut(),
162
167
  ) {
163
- let mut scope = scope; // fixme: can't figure out how to forward the borrow
164
168
  let value = value.v8_value;
165
- let value = Global::<v8::Value>::new(&mut scope, value);
166
- let value = convert_v8_to_ruby(&value, &mut scope).unwrap();
169
+ let value = Global::<v8::Value>::new(scope, value);
170
+ let value = convert_v8_to_ruby(&value, scope).unwrap();
167
171
  let args: (Value,) = (value,);
168
172
  return rec
169
173
  .call::<(Value,), Value>(args)
170
174
  .map_err(|err| AnyError::msg(format!("{:?}", err)))
171
- .and_then(|value| convert_ruby_to_v8(value, &mut scope))
172
- .map(|value| from_v8(&mut scope, value).unwrap());
175
+ .and_then(|value| convert_ruby_to_v8(value, scope))
176
+ .map(|value| from_v8(scope, value).unwrap());
173
177
  }
174
178
 
175
179
  // we need to deref the receiver as mut, as it is behind an Option
176
180
  // TODO: make sure all operations on Ruby data happen when GVL is held
177
181
  if let Some(ctx) = self.ruby_context.borrow_mut().as_mut() {
178
- let mut scope = scope; // fixme: can't figure out how to forward the borrow
179
182
  ctx.with_gvl(|| {
180
183
  if let Some(rec) = self.ruby_receiver.borrow_mut().as_mut() {
181
184
  let value = value.v8_value;
182
- let value = Global::<v8::Value>::new(&mut scope, value);
183
- let value = convert_v8_to_ruby(&value, &mut scope)?;
185
+ let value = Global::<v8::Value>::new(scope, value);
186
+ let value = convert_v8_to_ruby(&value, scope)?;
184
187
  let args: (Value,) = (value,);
185
188
  rec.call::<(Value,), Value>(args)
186
189
  .map_err(|err| AnyError::msg(format!("{:?}", err)))
@@ -189,8 +192,8 @@ impl Worker {
189
192
  }
190
193
  })
191
194
  .map_err(|err| AnyError::msg(format!("{:?}", err)))?
192
- .and_then(|value| convert_ruby_to_v8(value, &mut scope))
193
- .map(|value| from_v8(&mut scope, value).unwrap())
195
+ .and_then(|value| convert_ruby_to_v8(value, scope))
196
+ .map(|value| from_v8(scope, value).unwrap())
194
197
  } else {
195
198
  Err(AnyError::msg("this should never happen"))
196
199
  }
@@ -207,10 +210,8 @@ impl Default for Worker {
207
210
  todo!("Web workers are not supported in the example");
208
211
  });
209
212
 
210
- let extension_send = Extension::builder("isorun")
211
- .ops(vec![op_send_to_ruby::decl()])
212
- .build();
213
- let mut extensions = vec![extension_send];
213
+ let ext_isorun = ext::isorun::send_to_ruby::init_ops();
214
+ let mut extensions = vec![ext_isorun];
214
215
 
215
216
  let options = WorkerOptions {
216
217
  bootstrap: BootstrapOptions {
@@ -229,7 +230,6 @@ impl Default for Worker {
229
230
  inspect: false,
230
231
  },
231
232
  extensions: std::mem::take(&mut extensions),
232
- extensions_with_js: Default::default(),
233
233
  startup_snapshot: None,
234
234
  unsafely_ignore_certificate_errors: None,
235
235
  root_cert_store: None,
@@ -261,8 +261,11 @@ impl Default for Worker {
261
261
  let js_path = Path::new(isorun_native_gem_path.as_str())
262
262
  .join("ext/isorun/src/call.js");
263
263
 
264
- let main_module =
265
- deno_core::resolve_path(&js_path.to_string_lossy()).unwrap();
264
+ let main_module = deno_core::resolve_path(
265
+ &js_path.to_string_lossy(),
266
+ &env::current_dir().context("Unable to get CWD").unwrap(),
267
+ )
268
+ .unwrap();
266
269
  let permissions = PermissionsContainer::allow_all();
267
270
  let mut worker = MainWorker::bootstrap_from_options(
268
271
  main_module.clone(),
@@ -298,13 +301,3 @@ thread_local! {
298
301
  pub(crate) static WORKER: Worker = Worker::default();
299
302
  pub(crate) static MODULE_MAP: HashSet<ModuleId> = HashSet::default();
300
303
  }
301
-
302
- #[allow(clippy::extra_unused_lifetimes)]
303
- #[op(v8)]
304
- fn op_send_to_ruby<'a>(
305
- // do not remove the v8:: prefix, otherwise the macro complains
306
- scope: &mut v8::HandleScope,
307
- data: serde_v8::Value<'a>,
308
- ) -> Result<serde_v8::Value<'a>, AnyError> {
309
- WORKER.with(|worker| worker.send(scope, data))
310
- }
@@ -3,8 +3,11 @@ use crate::isorun::context::Context;
3
3
  use crate::isorun::utils::low_memory_notification;
4
4
  use isorun::function::Function;
5
5
  use isorun::module::Module;
6
- use magnus::{define_module, function, method, Error, Module as M, Object};
6
+ use magnus::{
7
+ class, define_module, function, method, Error, Module as M, Object,
8
+ };
7
9
 
10
+ mod ext;
8
11
  mod isorun;
9
12
  mod js;
10
13
 
@@ -22,7 +25,7 @@ fn init() -> Result<(), Error> {
22
25
  .expect("cannot define module function: low_memory_notification");
23
26
 
24
27
  let context = root
25
- .define_class("Context", Default::default())
28
+ .define_class("Context", class::object())
26
29
  .expect("cannot define class: Isorun::Context");
27
30
  context
28
31
  .define_singleton_method("new", function!(Context::new, 0))
@@ -35,7 +38,7 @@ fn init() -> Result<(), Error> {
35
38
  .expect("cannot define method: receiver=");
36
39
 
37
40
  let module = root
38
- .define_class("Module", Default::default())
41
+ .define_class("Module", class::object())
39
42
  .expect("cannot define class: Isorun::Module");
40
43
  module
41
44
  .define_private_method("id", method!(Module::id, 0))
@@ -45,7 +48,7 @@ fn init() -> Result<(), Error> {
45
48
  .expect("cannot define method: import");
46
49
 
47
50
  let function = root
48
- .define_class("Function", Default::default())
51
+ .define_class("Function", class::object())
49
52
  .expect("cannot define class: Isorun::Function");
50
53
  function
51
54
  .define_method("call", method!(Function::call, -1))
@@ -26,7 +26,8 @@ module Isorun
26
26
  CACHE_KEY = "isorun_module_path_mtime"
27
27
  private_constant :CACHE_KEY
28
28
 
29
- def load(module_path) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
29
+ def load(module_path)
30
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
30
31
  return context.load(module_path) if Rails.env.production?
31
32
 
32
33
  key = module_path.parameterize
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Isorun
4
- VERSION = "0.1.11"
4
+ VERSION = "0.1.12"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isorun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hannes Moser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-03 00:00:00.000000000 Z
11
+ date: 2023-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -158,10 +158,11 @@ files:
158
158
  - Rakefile
159
159
  - app/helpers/isorun/app_helper.rb
160
160
  - app/helpers/isorun/vite_app_helper.rb
161
- - ext/isorun/Cargo.lock
162
161
  - ext/isorun/Cargo.toml
163
162
  - ext/isorun/extconf.rb
164
163
  - ext/isorun/src/call.js
164
+ - ext/isorun/src/ext/isorun.rs
165
+ - ext/isorun/src/ext/mod.rs
165
166
  - ext/isorun/src/isorun/context.rs
166
167
  - ext/isorun/src/isorun/function.rs
167
168
  - ext/isorun/src/isorun/mod.rs
@@ -1,327 +0,0 @@
1
- # This file is automatically @generated by Cargo.
2
- # It is not intended for manual editing.
3
- version = 3
4
-
5
- [[package]]
6
- name = "aho-corasick"
7
- version = "0.7.19"
8
- source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
10
- dependencies = [
11
- "memchr",
12
- ]
13
-
14
- [[package]]
15
- name = "bindgen"
16
- version = "0.60.1"
17
- source = "registry+https://github.com/rust-lang/crates.io-index"
18
- checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
19
- dependencies = [
20
- "bitflags",
21
- "cexpr",
22
- "clang-sys",
23
- "lazy_static",
24
- "lazycell",
25
- "peeking_take_while",
26
- "proc-macro2",
27
- "quote",
28
- "regex",
29
- "rustc-hash",
30
- "shlex",
31
- ]
32
-
33
- [[package]]
34
- name = "bitflags"
35
- version = "1.3.2"
36
- source = "registry+https://github.com/rust-lang/crates.io-index"
37
- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
38
-
39
- [[package]]
40
- name = "cexpr"
41
- version = "0.6.0"
42
- source = "registry+https://github.com/rust-lang/crates.io-index"
43
- checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
44
- dependencies = [
45
- "nom",
46
- ]
47
-
48
- [[package]]
49
- name = "cfg-if"
50
- version = "1.0.0"
51
- source = "registry+https://github.com/rust-lang/crates.io-index"
52
- checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
53
-
54
- [[package]]
55
- name = "clang-sys"
56
- version = "1.4.0"
57
- source = "registry+https://github.com/rust-lang/crates.io-index"
58
- checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
59
- dependencies = [
60
- "glob",
61
- "libc",
62
- "libloading",
63
- ]
64
-
65
- [[package]]
66
- name = "darling"
67
- version = "0.13.4"
68
- source = "registry+https://github.com/rust-lang/crates.io-index"
69
- checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
70
- dependencies = [
71
- "darling_core",
72
- "darling_macro",
73
- ]
74
-
75
- [[package]]
76
- name = "darling_core"
77
- version = "0.13.4"
78
- source = "registry+https://github.com/rust-lang/crates.io-index"
79
- checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
80
- dependencies = [
81
- "fnv",
82
- "ident_case",
83
- "proc-macro2",
84
- "quote",
85
- "strsim",
86
- "syn",
87
- ]
88
-
89
- [[package]]
90
- name = "darling_macro"
91
- version = "0.13.4"
92
- source = "registry+https://github.com/rust-lang/crates.io-index"
93
- checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
94
- dependencies = [
95
- "darling_core",
96
- "quote",
97
- "syn",
98
- ]
99
-
100
- [[package]]
101
- name = "fnv"
102
- version = "1.0.7"
103
- source = "registry+https://github.com/rust-lang/crates.io-index"
104
- checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
105
-
106
- [[package]]
107
- name = "glob"
108
- version = "0.3.0"
109
- source = "registry+https://github.com/rust-lang/crates.io-index"
110
- checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
111
-
112
- [[package]]
113
- name = "ident_case"
114
- version = "1.0.1"
115
- source = "registry+https://github.com/rust-lang/crates.io-index"
116
- checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
117
-
118
- [[package]]
119
- name = "isorun"
120
- version = "0.1.0"
121
- dependencies = [
122
- "magnus",
123
- ]
124
-
125
- [[package]]
126
- name = "lazy_static"
127
- version = "1.4.0"
128
- source = "registry+https://github.com/rust-lang/crates.io-index"
129
- checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
130
-
131
- [[package]]
132
- name = "lazycell"
133
- version = "1.3.0"
134
- source = "registry+https://github.com/rust-lang/crates.io-index"
135
- checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
136
-
137
- [[package]]
138
- name = "libc"
139
- version = "0.2.135"
140
- source = "registry+https://github.com/rust-lang/crates.io-index"
141
- checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
142
-
143
- [[package]]
144
- name = "libloading"
145
- version = "0.7.3"
146
- source = "registry+https://github.com/rust-lang/crates.io-index"
147
- checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
148
- dependencies = [
149
- "cfg-if",
150
- "winapi",
151
- ]
152
-
153
- [[package]]
154
- name = "linkify"
155
- version = "0.9.0"
156
- source = "registry+https://github.com/rust-lang/crates.io-index"
157
- checksum = "96dd5884008358112bc66093362197c7248ece00d46624e2cf71e50029f8cff5"
158
- dependencies = [
159
- "memchr",
160
- ]
161
-
162
- [[package]]
163
- name = "magnus"
164
- version = "0.3.2"
165
- source = "git+https://github.com/matsadler/magnus?rev=cc852bfa31992d882d42509b1165eb5f67f9dc2c#cc852bfa31992d882d42509b1165eb5f67f9dc2c"
166
- dependencies = [
167
- "magnus-macros",
168
- "rb-sys",
169
- ]
170
-
171
- [[package]]
172
- name = "magnus-macros"
173
- version = "0.1.0"
174
- source = "git+https://github.com/matsadler/magnus?rev=cc852bfa31992d882d42509b1165eb5f67f9dc2c#cc852bfa31992d882d42509b1165eb5f67f9dc2c"
175
- dependencies = [
176
- "darling",
177
- "proc-macro2",
178
- "quote",
179
- "syn",
180
- ]
181
-
182
- [[package]]
183
- name = "memchr"
184
- version = "2.5.0"
185
- source = "registry+https://github.com/rust-lang/crates.io-index"
186
- checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
187
-
188
- [[package]]
189
- name = "minimal-lexical"
190
- version = "0.2.1"
191
- source = "registry+https://github.com/rust-lang/crates.io-index"
192
- checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
193
-
194
- [[package]]
195
- name = "nom"
196
- version = "7.1.1"
197
- source = "registry+https://github.com/rust-lang/crates.io-index"
198
- checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
199
- dependencies = [
200
- "memchr",
201
- "minimal-lexical",
202
- ]
203
-
204
- [[package]]
205
- name = "peeking_take_while"
206
- version = "0.1.2"
207
- source = "registry+https://github.com/rust-lang/crates.io-index"
208
- checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
209
-
210
- [[package]]
211
- name = "proc-macro2"
212
- version = "1.0.47"
213
- source = "registry+https://github.com/rust-lang/crates.io-index"
214
- checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
215
- dependencies = [
216
- "unicode-ident",
217
- ]
218
-
219
- [[package]]
220
- name = "quote"
221
- version = "1.0.21"
222
- source = "registry+https://github.com/rust-lang/crates.io-index"
223
- checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
224
- dependencies = [
225
- "proc-macro2",
226
- ]
227
-
228
- [[package]]
229
- name = "rb-sys"
230
- version = "0.9.31"
231
- source = "registry+https://github.com/rust-lang/crates.io-index"
232
- checksum = "bfc41b26ea88da6100f538d31467941e41ab0c002999d687315e67d3b371b796"
233
- dependencies = [
234
- "bindgen",
235
- "linkify",
236
- "rb-sys-build",
237
- ]
238
-
239
- [[package]]
240
- name = "rb-sys-build"
241
- version = "0.9.31"
242
- source = "registry+https://github.com/rust-lang/crates.io-index"
243
- checksum = "79be4233eabd2bf9e19eb8116391aeaf4b89b87a7ab38e0ded44de9158006e46"
244
- dependencies = [
245
- "regex",
246
- "shell-words",
247
- ]
248
-
249
- [[package]]
250
- name = "regex"
251
- version = "1.6.0"
252
- source = "registry+https://github.com/rust-lang/crates.io-index"
253
- checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
254
- dependencies = [
255
- "aho-corasick",
256
- "memchr",
257
- "regex-syntax",
258
- ]
259
-
260
- [[package]]
261
- name = "regex-syntax"
262
- version = "0.6.27"
263
- source = "registry+https://github.com/rust-lang/crates.io-index"
264
- checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
265
-
266
- [[package]]
267
- name = "rustc-hash"
268
- version = "1.1.0"
269
- source = "registry+https://github.com/rust-lang/crates.io-index"
270
- checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
271
-
272
- [[package]]
273
- name = "shell-words"
274
- version = "1.1.0"
275
- source = "registry+https://github.com/rust-lang/crates.io-index"
276
- checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
277
-
278
- [[package]]
279
- name = "shlex"
280
- version = "1.1.0"
281
- source = "registry+https://github.com/rust-lang/crates.io-index"
282
- checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
283
-
284
- [[package]]
285
- name = "strsim"
286
- version = "0.10.0"
287
- source = "registry+https://github.com/rust-lang/crates.io-index"
288
- checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
289
-
290
- [[package]]
291
- name = "syn"
292
- version = "1.0.102"
293
- source = "registry+https://github.com/rust-lang/crates.io-index"
294
- checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
295
- dependencies = [
296
- "proc-macro2",
297
- "quote",
298
- "unicode-ident",
299
- ]
300
-
301
- [[package]]
302
- name = "unicode-ident"
303
- version = "1.0.5"
304
- source = "registry+https://github.com/rust-lang/crates.io-index"
305
- checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
306
-
307
- [[package]]
308
- name = "winapi"
309
- version = "0.3.9"
310
- source = "registry+https://github.com/rust-lang/crates.io-index"
311
- checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
312
- dependencies = [
313
- "winapi-i686-pc-windows-gnu",
314
- "winapi-x86_64-pc-windows-gnu",
315
- ]
316
-
317
- [[package]]
318
- name = "winapi-i686-pc-windows-gnu"
319
- version = "0.4.0"
320
- source = "registry+https://github.com/rust-lang/crates.io-index"
321
- checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
322
-
323
- [[package]]
324
- name = "winapi-x86_64-pc-windows-gnu"
325
- version = "0.4.0"
326
- source = "registry+https://github.com/rust-lang/crates.io-index"
327
- checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"