An open API service indexing awesome lists of open source software.

https://github.com/emmiegit/str-macro

Rust str macro to bring the convenience of vec to the String type
https://github.com/emmiegit/str-macro

macros rust string

Last synced: about 1 year ago
JSON representation

Rust str macro to bring the convenience of vec to the String type

Awesome Lists containing this project

README

          

## str-macro



Rust CI badge

Rust crate for the `str!()` macro, which makes the conveniences available from `vec![]` available for `String` as well.

Has no dependencies, and should work on any Rust release channel.

* Create an empty `String`

```rust
// Vec equivalent
let v = vec![];
assert_eq!(v, Vec::new());
assert!(v.is_empty());

// String
let s = str!();
assert_eq!(s, String::new());
assert!(s.is_empty());
```

* Create an owned `String` from a constant str reference.

```rust
// Vec equivalent
let v = vec!["alpha", "beta", "gamma"];
assert_eq!(&v, &["alpha", "beta", "gamma"];
assert_eq!(v.len(), 3);

// String
let s = str!("alpha beta gamma");
assert_eq!(&s, "alpha beta gamma");
let _: String = s;
```

* Create an owned `String` from an object which implements `ToString`.

Note that this is automatically implemented for anything that implements `Display`.

```rust
let s = str!(2194);
assert_eq!(&s, "2194");

let s = str!(Ipv4Addr::new(127, 0, 0, 1));
assert_eq!(&s, "127.0.0.1");
```

----

Copyright (C) 2019-2021 Ammon Smith

Available under the MIT License.