yash_env/
alias.rs

1// This file is part of yash, an extended POSIX shell.
2// Copyright (C) 2024 WATANABE Yuki
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program.  If not, see <https://www.gnu.org/licenses/>.
16
17//! Implementation of the environment about aliases
18
19use crate::Env;
20use std::rc::Rc;
21use yash_syntax::alias::{Alias, Glossary};
22
23/// Allows to look up aliases in the environment.
24///
25/// This implementation delegates to `self.aliases`.
26impl Glossary for Env {
27    #[inline(always)]
28    fn look_up(&self, name: &str) -> Option<Rc<Alias>> {
29        self.aliases.look_up(name)
30    }
31    #[inline(always)]
32    fn is_empty(&self) -> bool {
33        self.aliases.is_empty()
34    }
35}