@@ -7,10 +7,10 @@ use std::io::{Read, Seek, Write};
77use std:: os:: fd:: AsFd ;
88use std:: rc:: { Rc , Weak } ;
99#[ derive( Default ) ]
10- pub struct MyContainer {
10+ pub struct MyContainer_int_ {
1111 vec_ : Value < Vec < i32 > > ,
1212}
13- impl MyContainer {
13+ impl MyContainer_int_ {
1414 pub fn empty ( & self ) -> bool {
1515 return ( * self . vec_ . borrow ( ) ) . is_empty ( ) ;
1616 }
@@ -34,20 +34,94 @@ impl MyContainer {
3434 } ;
3535 }
3636}
37- impl Clone for MyContainer {
37+ impl Clone for MyContainer_int_ {
3838 fn clone ( & self ) -> Self {
3939 let mut this = Self {
4040 vec_ : Rc :: new ( RefCell :: new ( ( * self . vec_ . borrow ( ) ) . clone ( ) ) ) ,
4141 } ;
4242 this
4343 }
4444}
45- impl ByteRepr for MyContainer { }
45+ impl ByteRepr for MyContainer_int_ { }
46+ #[ derive( Default ) ]
47+ pub struct MyContainer_char_ {
48+ vec_ : Value < Vec < u8 > > ,
49+ }
50+ impl MyContainer_char_ {
51+ pub fn empty ( & self ) -> bool {
52+ return ( * self . vec_ . borrow ( ) ) . is_empty ( ) ;
53+ }
54+ pub fn size ( & self ) -> usize {
55+ return ( * self . vec_ . borrow ( ) ) . len ( ) ;
56+ }
57+ pub fn back_const ( & self ) -> Ptr < u8 > {
58+ return ( self . vec_ . as_pointer ( ) as Ptr < u8 > ) . to_last ( ) ;
59+ }
60+ pub fn back ( & self ) -> Ptr < u8 > {
61+ return ( self . vec_ . as_pointer ( ) as Ptr < u8 > ) . to_last ( ) ;
62+ }
63+ pub fn pop_back ( & self ) {
64+ ( * self . vec_ . borrow_mut ( ) ) . pop ( ) ;
65+ return ;
66+ }
67+ pub fn push_back ( & self , item : Ptr < u8 > ) {
68+ {
69+ let a0_clone = ( item. read ( ) ) . clone ( ) ;
70+ ( * self . vec_ . borrow_mut ( ) ) . push ( a0_clone)
71+ } ;
72+ }
73+ }
74+ impl Clone for MyContainer_char_ {
75+ fn clone ( & self ) -> Self {
76+ let mut this = Self {
77+ vec_ : Rc :: new ( RefCell :: new ( ( * self . vec_ . borrow ( ) ) . clone ( ) ) ) ,
78+ } ;
79+ this
80+ }
81+ }
82+ impl ByteRepr for MyContainer_char_ { }
83+ #[ derive( Default ) ]
84+ pub struct MyContainer_float_ {
85+ vec_ : Value < Vec < f32 > > ,
86+ }
87+ impl MyContainer_float_ {
88+ pub fn empty ( & self ) -> bool {
89+ return ( * self . vec_ . borrow ( ) ) . is_empty ( ) ;
90+ }
91+ pub fn size ( & self ) -> usize {
92+ return ( * self . vec_ . borrow ( ) ) . len ( ) ;
93+ }
94+ pub fn back_const ( & self ) -> Ptr < f32 > {
95+ return ( self . vec_ . as_pointer ( ) as Ptr < f32 > ) . to_last ( ) ;
96+ }
97+ pub fn back ( & self ) -> Ptr < f32 > {
98+ return ( self . vec_ . as_pointer ( ) as Ptr < f32 > ) . to_last ( ) ;
99+ }
100+ pub fn pop_back ( & self ) {
101+ ( * self . vec_ . borrow_mut ( ) ) . pop ( ) ;
102+ return ;
103+ }
104+ pub fn push_back ( & self , item : Ptr < f32 > ) {
105+ {
106+ let a0_clone = ( item. read ( ) ) . clone ( ) ;
107+ ( * self . vec_ . borrow_mut ( ) ) . push ( a0_clone)
108+ } ;
109+ }
110+ }
111+ impl Clone for MyContainer_float_ {
112+ fn clone ( & self ) -> Self {
113+ let mut this = Self {
114+ vec_ : Rc :: new ( RefCell :: new ( ( * self . vec_ . borrow ( ) ) . clone ( ) ) ) ,
115+ } ;
116+ this
117+ }
118+ }
119+ impl ByteRepr for MyContainer_float_ { }
46120pub fn main ( ) {
47121 std:: process:: exit ( main_0 ( ) ) ;
48122}
49123fn main_0 ( ) -> i32 {
50- let imc: Value < MyContainer > = Rc :: new ( RefCell :: new ( <MyContainer >:: default ( ) ) ) ;
124+ let imc: Value < MyContainer_int_ > = Rc :: new ( RefCell :: new ( <MyContainer_int_ >:: default ( ) ) ) ;
51125 assert ! ( ( { ( * imc. borrow( ) ) . empty( ) } ) ) ;
52126 ( {
53127 let _item: Value < i32 > = Rc :: new ( RefCell :: new ( 1 ) ) ;
@@ -58,7 +132,7 @@ fn main_0() -> i32 {
58132 ) ;
59133 ( { ( * imc. borrow ( ) ) . pop_back ( ) } ) ;
60134 assert ! ( ( { ( * imc. borrow( ) ) . empty( ) } ) ) ;
61- let cmc: Value < MyContainer > = Rc :: new ( RefCell :: new ( <MyContainer >:: default ( ) ) ) ;
135+ let cmc: Value < MyContainer_char_ > = Rc :: new ( RefCell :: new ( <MyContainer_char_ >:: default ( ) ) ) ;
62136 assert ! ( ( { ( * cmc. borrow( ) ) . empty( ) } ) ) ;
63137 ( {
64138 let _item: Value < u8 > = Rc :: new ( RefCell :: new ( ( 'a' as u8 ) ) ) ;
@@ -70,7 +144,7 @@ fn main_0() -> i32 {
70144 ) ;
71145 ( { ( * cmc. borrow ( ) ) . pop_back ( ) } ) ;
72146 assert ! ( ( { ( * cmc. borrow( ) ) . empty( ) } ) ) ;
73- let fmc: Value < MyContainer > = Rc :: new ( RefCell :: new ( <MyContainer >:: default ( ) ) ) ;
147+ let fmc: Value < MyContainer_float_ > = Rc :: new ( RefCell :: new ( <MyContainer_float_ >:: default ( ) ) ) ;
74148 assert ! ( ( { ( * fmc. borrow( ) ) . empty( ) } ) ) ;
75149 ( {
76150 let _item: Value < f32 > = Rc :: new ( RefCell :: new ( ( ( 'a' as u8 ) as f32 ) ) ) ;
0 commit comments