abi_stable/sabi_trait/
doc_examples.rs
1use crate::sabi_trait;
5
6#[sabi_trait]
7#[sabi(use_dyn_trait)]
10pub trait ConstExample: Debug + Clone {
11 #[sabi(last_prefix_field)]
13 fn next_number(&self, num: usize) -> usize;
14}
15
16impl ConstExample for usize {
17 fn next_number(&self, num: usize) -> usize {
18 self + num
19 }
20}
21
22#[sabi_trait]
23pub trait Doer: Debug {
26 fn value(&self) -> usize;
28
29 fn do_it(&self, num: usize) -> usize;
31
32 #[sabi(last_prefix_field)]
34 fn add_into(&mut self, num: usize);
35}
36
37impl Doer for usize {
38 fn value(&self) -> usize {
39 *self
40 }
41
42 fn do_it(&self, num: usize) -> usize {
43 self + num
44 }
45 fn add_into(&mut self, num: usize) {
46 *self += num;
47 }
48}
49
50#[sabi_trait]
51#[doc(hidden)]
52pub trait DocHiddenTrait {}
53
54#[abi_stable::sabi_trait]
60pub trait Action: Debug {
62 fn get(&self) -> usize;
64
65 fn add_mut(&mut self, val: usize) -> usize;
67
68 #[sabi(last_prefix_field)]
70 fn add_into(self, val: usize) -> usize;
71}
72
73impl Action for usize {
74 fn get(&self) -> usize {
75 *self
76 }
77 fn add_mut(&mut self, val: usize) -> usize {
78 *self += val;
79 *self
80 }
81 fn add_into(mut self, val: usize) -> usize {
82 self += val;
83 self
84 }
85}