Lines Matching refs:s
86 void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits, bool for_struct) const { in GenExtractor() argument
87 s << GetDataType() << "::iterator ret_it = " << GetName() << "_ptr->begin();"; in GenExtractor()
88 s << "auto " << element_field_->GetName() << "_it = " << GetName() << "_it;"; in GenExtractor()
90 …s << "while (" << element_field_->GetName() << "_it.NumBytesRemaining() >= " << element_size_.byte… in GenExtractor()
91 s << " && ret_it < " << GetName() << "_ptr->end()) {"; in GenExtractor()
93 s << "while (" << element_field_->GetName() << "_it.NumBytesRemaining() > 0 "; in GenExtractor()
94 s << " && ret_it < " << GetName() << "_ptr->end()) {"; in GenExtractor()
97 s << element_field_->GetDataType() << " " << element_field_->GetName() << "_ptr;"; in GenExtractor()
99 s << "auto " << element_field_->GetName() << "_ptr = ret_it;"; in GenExtractor()
101 element_field_->GenExtractor(s, num_leading_bits, for_struct); in GenExtractor()
103 s << "*ret_it = std::move(" << element_field_->GetName() << "_ptr);"; in GenExtractor()
105 s << "ret_it++;"; in GenExtractor()
106 s << "}"; in GenExtractor()
115 void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset) const { in GenGetter() argument
116 s << GetDataType() << " " << GetGetterFunctionName() << "() {"; in GenGetter()
117 s << "ASSERT(was_validated_);"; in GenGetter()
118 s << "size_t end_index = size();"; in GenGetter()
119 s << "auto to_bound = begin();"; in GenGetter()
121 int num_leading_bits = GenBounds(s, start_offset, end_offset, GetSize()); in GenGetter()
122 s << GetDataType() << " " << GetName() << "_value{};"; in GenGetter()
123 s << GetDataType() << "* " << GetName() << "_ptr = &" << GetName() << "_value;"; in GenGetter()
124 GenExtractor(s, num_leading_bits, false); in GenGetter()
126 s << "return " << GetName() << "_value;"; in GenGetter()
127 s << "}\n"; in GenGetter()
144 bool ArrayField::GenBuilderMember(std::ostream& s) const { in GenBuilderMember()
145 s << "std::array<" << element_field_->GetDataType() << "," << array_size_ << "> " << GetName(); in GenBuilderMember()
157 void ArrayField::GenInserter(std::ostream& s) const { in GenInserter()
158 s << "for (const auto& val_ : " << GetName() << "_) {"; in GenInserter()
159 element_field_->GenInserter(s); in GenInserter()
160 s << "}\n"; in GenInserter()
179 void ArrayField::GenStringRepresentation(std::ostream& s, std::string accessor) const { in GenStringRepresentation() argument
180 s << "\"ARRAY[\";"; in GenStringRepresentation()
181 s << "/* " << element_field_->GetDataType() << " " << element_field_->GetFieldType() << " */"; in GenStringRepresentation()
185 s << "for (size_t index = 0; index < " << arr_size << "; index++) {"; in GenStringRepresentation()
187 s << "ss << ((index == 0) ? \"\" : \", \") << "; in GenStringRepresentation()
190 s << element_accessor << ".ToString()"; in GenStringRepresentation()
192 element_field_->GenStringRepresentation(s, element_accessor); in GenStringRepresentation()
195 s << ";}"; in GenStringRepresentation()
196 s << "ss << \"]\""; in GenStringRepresentation()
203 void ArrayField::GenRustGetter(std::ostream& s, Size start_offset, Size) const { in GenRustGetter() argument
204 s << "let " << GetName() << " = "; in GenRustGetter()
205 s << "bytes[" << start_offset.bytes() << ".."; in GenRustGetter()
206 s << start_offset.bytes() + GetSize().bytes() << "].try_into().unwrap();"; in GenRustGetter()
209 void ArrayField::GenRustWriter(std::ostream& s, Size start_offset, Size) const { in GenRustWriter() argument
210 s << "&buffer[" << start_offset.bytes() << ".." << start_offset.bytes() + GetSize().bytes() in GenRustWriter()