/
githubmirror
/
sway
Обзор
Документация
Войти
/
githubmirror
/
sway
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
swayfmt/src/module/submodule.rs
42 строки
1 KB
Igor Rončević
Refactor `swayfmt` to support arbitrary lexed trees (#6806)
07 янв 2025, 14:55
Не верифицирован
07 янв 2025, 14:55
2357676
Код
Авторство
О чём код?
use crate::{ formatter::*, utils::map::byte_span::{ByteSpan, LeafSpans}, }; use std::fmt::Write; use sway_ast::{ keywords::{Keyword, ModToken, SemicolonToken, Token}, submodule::Submodule, PubToken, }; use sway_types::Spanned; impl Format for Submodule { fn format( &self, formatted_code: &mut FormattedCode, formatter: &mut Formatter, ) -> Result<(), FormatterError> { if self.visibility.is_some() { write!(formatted_code, "{} ", PubToken::AS_STR)?; } write!(formatted_code, "{} ", ModToken::AS_STR)?; self.name.format(formatted_code, formatter)?; writeln!(formatted_code, "{}", SemicolonToken::AS_STR)?; Ok(()) } } impl LeafSpans for Submodule { fn leaf_spans(&self) -> Vec<ByteSpan> { let mut spans = Vec::with_capacity(4); if let Some(visibility) = &self.visibility { spans.push(ByteSpan::from(visibility.span())); } spans.extend_from_slice(&[ ByteSpan::from(self.mod_token.span()), ByteSpan::from(self.name.span()), ByteSpan::from(self.semicolon_token.span()), ]); spans } }