allow more types to be used as paths

This commit is contained in:
Wuelle
2021-12-30 21:59:17 +01:00
parent 69fd5f310c
commit 5e563cddf8
2 changed files with 9 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
use std::fs::File;
use std::path::Path;
use std::io::SeekFrom;
use std::io::Cursor;
use std::io::{Read, Seek, BufReader};
@@ -198,7 +200,7 @@ pub struct WaveReader<R: Read + Seek> {
impl WaveReader<BufReader<File>> {
pub fn open(path: &str) -> Result<Self, ParserError> {
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self, ParserError> {
let f = File::open(path)?;
let inner = BufReader::new(f);
Ok( Self::new(inner)? )
@@ -211,7 +213,7 @@ impl WaveReader<File> {
///
/// A convenience that opens `path` and calls `Self::new()`
pub fn open_unbuffered(path: &str) -> Result<Self, ParserError> {
pub fn open_unbuffered<P: AsRef<Path>>(path: P) -> Result<Self, ParserError> {
let inner = File::open(path)?;
return Ok( Self::new(inner)? )
}

View File

@@ -1,4 +1,5 @@
use std::fs::File;
use std::path::Path;
use std::io::{Write,Seek,SeekFrom,Cursor,BufWriter};
use super::Error;
@@ -213,7 +214,7 @@ const DS64_RESERVATION_LENGTH : u32 = 96;
impl WaveWriter<BufWriter<File>> {
/// Create a new Wave file at `path`.
pub fn create(path : &str, format : WaveFmt) -> Result<Self, Error> {
pub fn create<P: AsRef<Path>>(path : P, format : WaveFmt) -> Result<Self, Error> {
let f = File::create(path)?;
let b = BufWriter::new(f);
Ok( Self::new(b, format)? )
@@ -222,7 +223,7 @@ impl WaveWriter<BufWriter<File>> {
impl WaveWriter<File> {
/// Creare a new Wave file with unbuffered IO at `path`
pub fn create_unbuffered(path : &str, format : WaveFmt) -> Result<Self, Error> {
pub fn create_unbuffered<P: AsRef<Path>>(path : P, format : WaveFmt) -> Result<Self, Error> {
let f = File::create(path)?;
Ok( Self::new(f, format)? )
}