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}