Implement Default for Location

This commit is contained in:
harupy 2023-01-05 22:48:47 +09:00
parent 7f552e4594
commit 2dfd053bed
3 changed files with 10 additions and 4 deletions

View file

@ -1,12 +1,18 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
/// Sourcecode location. /// Sourcecode location.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
pub struct Location { pub struct Location {
pub(super) row: u32, pub(super) row: u32,
pub(super) column: u32, pub(super) column: u32,
} }
impl Default for Location {
fn default() -> Self {
Self { row: 1, column: 0 }
}
}
impl Location { impl Location {
pub fn fmt_with( pub fn fmt_with(
&self, &self,

View file

@ -153,7 +153,7 @@ pub type LexResult = Result<Spanned, LexicalError>;
#[inline] #[inline]
pub fn make_tokenizer(source: &str) -> impl Iterator<Item = LexResult> + '_ { pub fn make_tokenizer(source: &str) -> impl Iterator<Item = LexResult> + '_ {
make_tokenizer_located(source, Location::new(1, 0)) make_tokenizer_located(source, Location::default())
} }
pub fn make_tokenizer_located( pub fn make_tokenizer_located(

View file

@ -541,8 +541,8 @@ mod tests {
source, source,
StringKind::FString, StringKind::FString,
false, false,
Location::new(1, 0), Location::default(),
Location::new(1, source.len() + 3), // 3 for prefix and quotes Location::default().with_col_offset(source.len() + 3), // 3 for prefix and quotes
) )
.parse() .parse()
} }