From 52417d5b5c4298548d42528a2c0909bc82bacc95 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Thu, 3 Sep 2015 19:35:26 +0300 Subject: [PATCH] Implement `Borrow` for fixed-size arrays --- src/libcore/array.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libcore/array.rs b/src/libcore/array.rs index 0959029b953..8c785b10923 100644 --- a/src/libcore/array.rs +++ b/src/libcore/array.rs @@ -19,6 +19,7 @@ integer constants", issue = "27778")] +use borrow::{Borrow, BorrowMut}; use clone::Clone; use cmp::{PartialEq, Eq, PartialOrd, Ord, Ordering}; use convert::{AsRef, AsMut}; @@ -70,6 +71,20 @@ macro_rules! array_impls { } } + #[stable(feature = "array_borrow", since = "1.4.0")] + impl Borrow<[T]> for [T; $N] { + fn borrow(&self) -> &[T] { + self + } + } + + #[stable(feature = "array_borrow", since = "1.4.0")] + impl BorrowMut<[T]> for [T; $N] { + fn borrow_mut(&mut self) -> &mut [T] { + self + } + } + #[stable(feature = "rust1", since = "1.0.0")] impl Clone for [T; $N] { fn clone(&self) -> [T; $N] {