Skip to content

Commit 32d4ea0

Browse files
committed
Implement AsRef<Module> and have Context::install take it
1 parent d035a36 commit 32d4ea0

40 files changed

+102
-90
lines changed

crates/rune-cli/src/main.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,11 +260,11 @@ impl SharedFlags {
260260
let mut context = rune_modules::default_context()?;
261261

262262
if self.experimental {
263-
context.install(&rune_modules::experiments::module(true)?)?;
263+
context.install(rune_modules::experiments::module(true)?)?;
264264
}
265265

266266
if c.test {
267-
context.install(&benches::test_module()?)?;
267+
context.install(benches::test_module()?)?;
268268
}
269269

270270
Ok(context)
@@ -274,14 +274,14 @@ impl SharedFlags {
274274
fn context_with_capture(&self, c: &Config, io: &CaptureIo) -> Result<Context, ContextError> {
275275
let mut context = rune_modules::with_config(false)?;
276276

277-
context.install(&rune_modules::capture_io::module(io)?)?;
277+
context.install(rune_modules::capture_io::module(io)?)?;
278278

279279
if self.experimental {
280-
context.install(&rune_modules::experiments::module(true)?)?;
280+
context.install(rune_modules::experiments::module(true)?)?;
281281
}
282282

283283
if c.test {
284-
context.install(&benches::test_module()?)?;
284+
context.install(benches::test_module()?)?;
285285
}
286286

287287
Ok(context)

crates/rune-languageserver/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ fn main() -> Result<()> {
9595
}
9696

9797
let mut context = rune_modules::default_context()?;
98-
context.install(&rune_modules::experiments::module(true)?)?;
98+
context.install(rune_modules::experiments::module(true)?)?;
9999

100100
let mut options = Options::default();
101101
options.macros(true);

crates/rune-macros/tests/test_rename.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fn test_rename() {
1818
module.ty::<Bar>().unwrap();
1919

2020
let mut context = Context::new();
21-
let e = context.install(&module).unwrap_err();
21+
let e = context.install(module).unwrap_err();
2222

2323
match e {
2424
ContextError::ConflictingType { item, .. } => {

crates/rune-modules/src/capture_io.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
//! # fn main() -> Result<(), ContextError> {
88
//! let io = CaptureIo::new();
99
//!
10-
//! let mut c = rune_modules::with_config(false)?;
11-
//! c.install(&capture_io::module(&io)?)?;
10+
//! let mut context = rune_modules::with_config(false)?;
11+
//! context.install(capture_io::module(&io)?)?;
1212
//! # Ok(()) }
1313
//! ```
1414

crates/rune-modules/src/disable_io.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//! use rune_modules::disable_io;
66
//!
77
//! # fn main() -> Result<(), ContextError> {
8-
//! let mut c = rune_modules::with_config(false)?;
9-
//! c.install(&disable_io::module()?)?;
8+
//! let mut context = rune_modules::with_config(false)?;
9+
//! context.install(disable_io::module()?)?;
1010
//! # Ok(()) }
1111
//! ```
1212

crates/rune-modules/src/experiments/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::experiments::module(true)?)?;
18+
//! context.install(rune_modules::experiments::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-modules/src/fs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::fs::module(true)?)?;
18+
//! context.install(rune_modules::fs::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-modules/src/http.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::http::module(true)?)?;
19-
//! context.install(&rune_modules::json::module(true)?)?;
18+
//! context.install(rune_modules::http::module(true)?)?;
19+
//! context.install(rune_modules::json::module(true)?)?;
2020
//! # Ok(())
2121
//! # }
2222
//! ```

crates/rune-modules/src/json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::json::module(true)?)?;
18+
//! context.install(rune_modules::json::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-modules/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ macro_rules! modules {
106106
#[allow(deprecated)]
107107
#[cfg(feature = $name)]
108108
{
109-
context.install(&self::$ident::module(stdio)?)?;
109+
context.install(self::$ident::module(stdio)?)?;
110110
}
111111
)*
112112

crates/rune-modules/src/process.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::process::module(true)?)?;
18+
//! context.install(rune_modules::process::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-modules/src/rand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
//! ```rust
1717
//! # fn main() -> rune::Result<()> {
1818
//! let mut context = rune::Context::with_default_modules()?;
19-
//! context.install(&rune_modules::rand::module(true)?)?;
19+
//! context.install(rune_modules::rand::module(true)?)?;
2020
//! # Ok(())
2121
//! # }
2222
//! ```

crates/rune-modules/src/signal.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::signal::module(true)?)?;
18+
//! context.install(rune_modules::signal::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-modules/src/time.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::time::module(true)?)?;
18+
//! context.install(rune_modules::time::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-modules/src/toml.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//! ```rust
1616
//! # fn main() -> rune::Result<()> {
1717
//! let mut context = rune::Context::with_default_modules()?;
18-
//! context.install(&rune_modules::toml::module(true)?)?;
18+
//! context.install(rune_modules::toml::module(true)?)?;
1919
//! # Ok(())
2020
//! # }
2121
//! ```

crates/rune-wasm/src/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ impl WasmCompileResult {
149149
fn setup_context(experimental: bool, io: &CaptureIo) -> Result<Context, ContextError> {
150150
let mut context = Context::with_config(false)?;
151151

152-
context.install(&rune_modules::capture_io::module(io)?)?;
153-
context.install(&time::module()?)?;
154-
context.install(&http::module()?)?;
155-
context.install(&rune_modules::json::module(false)?)?;
156-
context.install(&rune_modules::toml::module(false)?)?;
157-
context.install(&rune_modules::rand::module(false)?)?;
152+
context.install(rune_modules::capture_io::module(io)?)?;
153+
context.install(time::module()?)?;
154+
context.install(http::module()?)?;
155+
context.install(rune_modules::json::module(false)?)?;
156+
context.install(rune_modules::toml::module(false)?)?;
157+
context.install(rune_modules::rand::module(false)?)?;
158158

159159
if experimental {
160-
context.install(&rune_modules::experiments::module(false)?)?;
160+
context.install(rune_modules::experiments::module(false)?)?;
161161
}
162162

163163
Ok(context)

crates/rune/src/ast/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
//! m.macro_(["ident_to_string"], ident_to_string)?;
2727
//!
2828
//! let mut context = Context::new();
29-
//! context.install(&m)?;
29+
//! context.install(m)?;
3030
//!
3131
//! let runtime = Arc::new(context.runtime());
3232
//!

crates/rune/src/compile/context.rs

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -228,29 +228,29 @@ impl Context {
228228
/// * `::std::io::println`
229229
pub fn with_config(stdio: bool) -> Result<Self, ContextError> {
230230
let mut this = Self::new();
231-
this.install(&crate::modules::any::module()?)?;
232-
this.install(&crate::modules::bytes::module()?)?;
233-
this.install(&crate::modules::char::module()?)?;
234-
this.install(&crate::modules::cmp::module()?)?;
235-
this.install(&crate::modules::collections::module()?)?;
236-
this.install(&crate::modules::core::module()?)?;
237-
this.install(&crate::modules::float::module()?)?;
238-
this.install(&crate::modules::fmt::module()?)?;
239-
this.install(&crate::modules::future::module()?)?;
240-
this.install(&crate::modules::generator::module()?)?;
241-
this.install(&crate::modules::int::module()?)?;
242-
this.install(&crate::modules::io::module(stdio)?)?;
243-
this.install(&crate::modules::iter::module()?)?;
244-
this.install(&crate::modules::macros::module()?)?;
245-
this.install(&crate::modules::mem::module()?)?;
246-
this.install(&crate::modules::object::module()?)?;
247-
this.install(&crate::modules::ops::module()?)?;
248-
this.install(&crate::modules::option::module()?)?;
249-
this.install(&crate::modules::result::module()?)?;
250-
this.install(&crate::modules::stream::module()?)?;
251-
this.install(&crate::modules::string::module()?)?;
252-
this.install(&crate::modules::test::module()?)?;
253-
this.install(&crate::modules::vec::module()?)?;
231+
this.install(crate::modules::any::module()?)?;
232+
this.install(crate::modules::bytes::module()?)?;
233+
this.install(crate::modules::char::module()?)?;
234+
this.install(crate::modules::cmp::module()?)?;
235+
this.install(crate::modules::collections::module()?)?;
236+
this.install(crate::modules::core::module()?)?;
237+
this.install(crate::modules::float::module()?)?;
238+
this.install(crate::modules::fmt::module()?)?;
239+
this.install(crate::modules::future::module()?)?;
240+
this.install(crate::modules::generator::module()?)?;
241+
this.install(crate::modules::int::module()?)?;
242+
this.install(crate::modules::io::module(stdio)?)?;
243+
this.install(crate::modules::iter::module()?)?;
244+
this.install(crate::modules::macros::module()?)?;
245+
this.install(crate::modules::mem::module()?)?;
246+
this.install(crate::modules::object::module()?)?;
247+
this.install(crate::modules::ops::module()?)?;
248+
this.install(crate::modules::option::module()?)?;
249+
this.install(crate::modules::result::module()?)?;
250+
this.install(crate::modules::stream::module()?)?;
251+
this.install(crate::modules::string::module()?)?;
252+
this.install(crate::modules::test::module()?)?;
253+
this.install(crate::modules::vec::module()?)?;
254254
this.has_default_modules = true;
255255
Ok(this)
256256
}
@@ -287,7 +287,12 @@ impl Context {
287287
/// This installs everything that has been declared in the given [Module]
288288
/// and ensures that they are compatible with the overall context, like
289289
/// ensuring that a given type is only declared once.
290-
pub fn install(&mut self, module: &Module) -> Result<(), ContextError> {
290+
pub fn install<M>(&mut self, module: M) -> Result<(), ContextError>
291+
where
292+
M: AsRef<Module>,
293+
{
294+
let module = module.as_ref();
295+
291296
if let Some(id) = module.unique {
292297
if !self.unique.insert(id) {
293298
return Ok(());

crates/rune/src/compile/module.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ impl Module {
343343
/// module.inst_fn("len", MyBytes::len)?;
344344
///
345345
/// let mut context = rune::Context::new();
346-
/// assert!(context.install(&module).is_err());
346+
/// assert!(context.install(module).is_err());
347347
///
348348
/// // Register `len` properly.
349349
/// let mut module = rune::Module::default();
@@ -352,7 +352,7 @@ impl Module {
352352
/// module.inst_fn("len", MyBytes::len)?;
353353
///
354354
/// let mut context = rune::Context::new();
355-
/// assert!(context.install(&module).is_ok());
355+
/// assert!(context.install(module).is_ok());
356356
/// # Ok(()) }
357357
/// ```
358358
pub fn ty<T>(&mut self) -> Result<(), ContextError>
@@ -849,7 +849,7 @@ impl Module {
849849
/// module.inst_fn("len", MyBytes::len)?;
850850
///
851851
/// let mut context = rune::Context::new();
852-
/// context.install(&module)?;
852+
/// context.install(module)?;
853853
/// # Ok(()) }
854854
/// ```
855855
pub fn inst_fn<N, Func, Args>(&mut self, name: N, f: Func) -> Result<(), ContextError>
@@ -986,6 +986,13 @@ impl Module {
986986
}
987987
}
988988

989+
impl AsRef<Module> for Module {
990+
#[inline]
991+
fn as_ref(&self) -> &Module {
992+
self
993+
}
994+
}
995+
989996
/// Trait used to provide the [function][Module::function] function.
990997
pub trait Function<Args>: 'static + Send + Sync {
991998
/// The return type of the function.

crates/rune/src/macros/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
//! m.macro_(["concat_idents"], concat_idents)?;
4343
//!
4444
//! let mut context = Context::new();
45-
//! context.install(&m)?;
45+
//! context.install(m)?;
4646
//!
4747
//! let runtime = Arc::new(context.runtime());
4848
//!

examples/examples/checked_add_assign.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ fn main() -> rune::Result<()> {
2525
let m = module()?;
2626

2727
let mut context = rune_modules::default_context()?;
28-
context.install(&m)?;
28+
context.install(m)?;
2929
let runtime = Arc::new(context.runtime());
3030

3131
let mut sources = rune::sources! {

examples/examples/concat_idents.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ fn main() -> rune::Result<()> {
3333
m.macro_(["concat_idents"], concat_idents)?;
3434

3535
let mut context = Context::new();
36-
context.install(&m)?;
36+
context.install(m)?;
3737

3838
let runtime = Arc::new(context.runtime());
3939

examples/examples/custom_instance_fn.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ async fn main() -> rune::Result<()> {
1111
let m = module()?;
1212

1313
let mut context = rune_modules::default_context()?;
14-
context.install(&m)?;
14+
context.install(m)?;
1515
let runtime = Arc::new(context.runtime());
1616

1717
let mut sources = rune::sources!(entry => {

examples/examples/custom_mul.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ fn main() -> rune::Result<()> {
2222
let m = module()?;
2323

2424
let mut context = rune_modules::default_context()?;
25-
context.install(&m)?;
25+
context.install(m)?;
2626

2727
let runtime = Arc::new(context.runtime());
2828

examples/examples/external_enum.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ fn main() -> rune::Result<()> {
2525
let m = module()?;
2626

2727
let mut context = rune_modules::default_context()?;
28-
context.install(&m)?;
28+
context.install(m)?;
2929
let runtime = Arc::new(context.runtime());
3030

3131
let mut sources = rune::sources! {

examples/examples/native_function.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ fn main() -> rune::Result<()> {
66
let m = module()?;
77

88
let mut context = rune_modules::default_context()?;
9-
context.install(&m)?;
9+
context.install(m)?;
1010

1111
let runtime = Arc::new(context.runtime());
1212

examples/examples/parsing_in_macro.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub fn main() -> rune::Result<()> {
99
let m = module()?;
1010

1111
let mut context = rune_modules::default_context()?;
12-
context.install(&m)?;
12+
context.install(m)?;
1313
let runtime = Arc::new(context.runtime());
1414

1515
let mut sources = rune::sources! {

examples/examples/references.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fn main() -> rune::Result<()> {
2121
module.inst_fn(Protocol::ADD_ASSIGN, Foo::add_assign)?;
2222

2323
let mut context = rune_modules::default_context()?;
24-
context.install(&module)?;
24+
context.install(module)?;
2525

2626
let runtime = Arc::new(context.runtime());
2727

examples/examples/simple_external.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fn main() -> rune::Result<()> {
1919
let m = module()?;
2020

2121
let mut context = rune_modules::default_context()?;
22-
context.install(&m)?;
22+
context.install(m)?;
2323
let runtime = Arc::new(context.runtime());
2424

2525
let mut sources = rune::sources! {

0 commit comments

Comments
 (0)