- Start Date: 2014-06-06
- RFC PR: [rust-lang/rfcs#168](https://github.com/rust-lang/rfcs/pull/168)
- Rust Issue: [rust-lang/rust#15722](https://github.com/rust-lang/rust/issues/15722)
- Author: Tommit (edited by nrc)


# Summary

Add syntax sugar for importing a module and items in that module in a single
view item.


# Motivation

Make use clauses more concise.


# Detailed design

The `mod` keyword may be used in a braced list of modules in a `use` item to
mean the prefix module for  that list. For example, writing `prefix::{mod,
foo};` is equivalent to writing

```
use prefix;
use prefix::foo;
```

The `mod` keyword cannot be used outside of braces, nor can it be used inside
braces which do not have a prefix path. Both of the following examples are
illegal:

```
use module::mod;
use {mod, foo};
```

A programmer may write `mod` in a module list with only a single item. E.g.,
`use prefix::{mod};`, although this is considered poor style and may be forbidden
by a lint. (The preferred version is `use prefix;`).


# Drawbacks

Another use of the `mod` keyword.

We introduce a way (the only way) to have paths in use items which do not
correspond with paths which can be used in the program. For example, with `use
foo::bar::{mod, baz};` the programmer can use `foo::bar::baz` in their program
but not `foo::bar::mod` (instead `foo::bar` is imported).

# Alternatives

Don't do this.


# Unresolved questions

N/A
