better support Path and str in parse_file args

This commit is contained in:
Raamakrishnan 2020-02-07 21:35:09 +05:30
parent bc536c6c15
commit abda8754a6
3 changed files with 7 additions and 4 deletions

View file

@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [Unreleased]
### Changed
- Argument to `parse_file` is changed to `AsRef<Path>`
## [0.1.0] - 2020-02-02 ## [0.1.0] - 2020-02-02
### Added ### Added

View file

@ -4,7 +4,7 @@ A library in Rust to parse a Verilog Filelist and return
a list of files, include directories and defines. a list of files, include directories and defines.
Environment variables represented with paranthesis or Environment variables represented with paranthesis or
curly braces (i.e. $() or ${}) will be automatically curly braces (i.e. `$()` or `${}`) will be automatically
substituted. substituted.
# Example # Example

View file

@ -2,7 +2,7 @@ use regex::Regex;
use std::collections::HashMap; use std::collections::HashMap;
use std::error::Error; use std::error::Error;
use std::fs; use std::fs;
use std::path::PathBuf; use std::path::{Path, PathBuf};
use crate::line_parser; use crate::line_parser;
use crate::line_parser::LineType; use crate::line_parser::LineType;
@ -49,15 +49,16 @@ impl Filelist {
/// Environment variables represented with paranthesis or /// Environment variables represented with paranthesis or
/// curly braces (i.e. `$()` or `${}`) will be automatically /// curly braces (i.e. `$()` or `${}`) will be automatically
/// substituted. /// substituted.
///
/// # Arguments /// # Arguments
/// ///
/// * `path` - A string slice that is the path to the filelist /// * `path` - The path to the filelist
/// ///
/// # Errors /// # Errors
/// ///
/// Returns an error if the filelist in `path` cannot be read. Also returns /// Returns an error if the filelist in `path` cannot be read. Also returns
/// error if any of the nested filelists cannot be read. /// error if any of the nested filelists cannot be read.
pub fn parse_file(path: &str) -> Result<Filelist, Box<dyn Error>> { pub fn parse_file(path: impl AsRef<Path>) -> Result<Filelist, Box<dyn Error>> {
let contents = fs::read_to_string(path)?; let contents = fs::read_to_string(path)?;
let mut filelist = Filelist::new(); let mut filelist = Filelist::new();