From 5e563cddf82232f2f2b837b4159e26ad89f2a0e6 Mon Sep 17 00:00:00 2001 From: Wuelle Date: Thu, 30 Dec 2021 21:59:17 +0100 Subject: [PATCH] allow more types to be used as paths --- src/wavereader.rs | 8 +++++--- src/wavewriter.rs | 7 ++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/wavereader.rs b/src/wavereader.rs index 5fa7b2e..e15614d 100644 --- a/src/wavereader.rs +++ b/src/wavereader.rs @@ -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 { impl WaveReader> { - pub fn open(path: &str) -> Result { + pub fn open>(path: P) -> Result { let f = File::open(path)?; let inner = BufReader::new(f); Ok( Self::new(inner)? ) @@ -211,7 +213,7 @@ impl WaveReader { /// /// A convenience that opens `path` and calls `Self::new()` - pub fn open_unbuffered(path: &str) -> Result { + pub fn open_unbuffered>(path: P) -> Result { let inner = File::open(path)?; return Ok( Self::new(inner)? ) } @@ -600,4 +602,4 @@ fn test_list_form() { assert_ne!(buf.len(), 0); -} \ No newline at end of file +} diff --git a/src/wavewriter.rs b/src/wavewriter.rs index bae5f5d..8f2520d 100644 --- a/src/wavewriter.rs +++ b/src/wavewriter.rs @@ -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> { /// Create a new Wave file at `path`. - pub fn create(path : &str, format : WaveFmt) -> Result { + pub fn create>(path : P, format : WaveFmt) -> Result { let f = File::create(path)?; let b = BufWriter::new(f); Ok( Self::new(b, format)? ) @@ -222,7 +223,7 @@ impl WaveWriter> { impl WaveWriter { /// Creare a new Wave file with unbuffered IO at `path` - pub fn create_unbuffered(path : &str, format : WaveFmt) -> Result { + pub fn create_unbuffered>(path : P, format : WaveFmt) -> Result { let f = File::create(path)?; Ok( Self::new(f, format)? ) } @@ -521,4 +522,4 @@ fn test_create_rf64() { cursor.seek(SeekFrom::Current(data_size as i64)).unwrap(); assert_eq!(4 + 8 + ds64_size as u64 + 8 + data_size + 8 + fmt_size as u64 + 8 + elm1_size as u64, form_size) -} \ No newline at end of file +}