pub struct Parser { /* private fields */ }Expand description
.env file parser.
Construct with Parser::default() for standard behaviour, or
[Parser::new(config)] to customise.
Implementations§
Source§impl Parser
impl Parser
Sourcepub fn new(config: ParserConfig) -> Self
pub fn new(config: ParserConfig) -> Self
Create a parser with a custom ParserConfig.
Sourcepub fn parse_file<P: AsRef<Path>>(&self, path: P) -> ParseResult<EnvFile>
pub fn parse_file<P: AsRef<Path>>(&self, path: P) -> ParseResult<EnvFile>
Parse a .env file from a filesystem path.
Accepts any type that implements AsRef<Path> — &str, String,
PathBuf, Path, and OsStr all work without conversion.
This restores the generic signature from the old parser. The new
parser narrowed it to &str, which forced callers holding a PathBuf
to call .to_str().unwrap().
§Errors
Returns ParseError::FileReadError if the file cannot be read, or
any parse error variant if the content is invalid.
§Example
use dotenv_space::core::Parser;
let parser = Parser::default();
let env_file = parser.parse_file(".env")?;
println!("Loaded {} variables", env_file.vars.len());Sourcepub fn parse_content(
&self,
content: &str,
) -> ParseResult<HashMap<String, String>>
pub fn parse_content( &self, content: &str, ) -> ParseResult<HashMap<String, String>>
Parse .env content from an in-memory string.
Method name matches the old parser (parse_content) so existing
tests and the template command require no changes.
§Example
use dotenv_space::core::Parser;
let parser = Parser::default();
let vars = parser.parse_content("KEY=value\nOTHER=123")?;
assert_eq!(vars["KEY"], "value");Trait Implementations§
Source§impl Default for Parser
Correct implementation of the Default trait.
impl Default for Parser
Correct implementation of the Default trait.
The old parser used a hand-written pub fn default() -> Self method,
which triggers clippy::should_implement_trait. This implementation
satisfies the trait properly so Parser::default() continues to work
at every existing call site without change.