code_gen/rust/function/
receiver.rs

1use crate::{CodeBuffer, Expression};
2
3/// A function receiver.
4#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
5pub enum Receiver {
6    Borrowed,
7    BorrowedMut,
8    Owned,
9    OwnedMut,
10}
11
12impl Expression for Receiver {
13    fn write(&self, b: &mut CodeBuffer) {
14        let s: &str = match self {
15            Self::Borrowed => "&self",
16            Self::BorrowedMut => "&mut self",
17            Self::Owned => "self",
18            Self::OwnedMut => "mut self",
19        };
20        b.write(s);
21    }
22}