|
|
|
|
|
by dbaupp
4687 days ago
|
|
You can use lifetimes to enforce that a certain thing is static data, and combined with an enum, you get the best of both worlds: compile-time constants require no allocations, but still flexible enough to allow run-time construction: enum StringRef {
Static(&'static str),
Owned(~str)
}
and then `error` would take `StringRef` and be called like: self.error(Static("trailing characters"))
// or
self.error(Owned(fmt!("%u trailing characters", count)))
(There was even a pull request that added this and the corresponding one for vectors to the stdlib, but it didn't landed (yet): https://github.com/mozilla/rust/pull/7599) |
|