use crate::Canonicalize;
use std::path::PathBuf;
use std::collections::VecDeque;
use std::ffi::FromBytesWithNulError;
use std::ffi::IntoStringError;
use std::time::SystemTimeError;
impl Canonicalize for String {}
impl Canonicalize for FromBytesWithNulError {}
impl Canonicalize for IntoStringError {}
impl Canonicalize for SystemTimeError {}
impl<T: Canonicalize + Copy> Canonicalize for Vec<T>
{
fn canon(self) -> Self
{
self.iter().map(|x| x.canon()).collect()
}
}
impl Canonicalize for PathBuf
{
fn canon(self) -> Self
{
self.canonicalize().unwrap() }
}
impl<T> Canonicalize for [T; 0]
{
fn canon(self) -> Self
{
[]
}
}
impl<T: Canonicalize> Canonicalize for Box<T>
{
fn canon(self) -> Self
{
Box::new((*self).canon())
}
}
impl<T: Canonicalize + Copy> Canonicalize for VecDeque<T>
{
fn canon(self) -> Self
{
self.iter().map(|x| x.canon()).collect()
}
}