| // Protocol Buffers - Google's data interchange format | 
 | // Copyright 2023 Google LLC.  All rights reserved. | 
 | // | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file or at | 
 | // https://developers.google.com/open-source/licenses/bsd | 
 |  | 
 | #ifndef UPB_LEX_ROUND_TRIP_H_ | 
 | #define UPB_LEX_ROUND_TRIP_H_ | 
 |  | 
 | // Must be last. | 
 | #include "upb/port/def.inc" | 
 |  | 
 | // Encodes a float or double that is round-trippable, but as short as possible. | 
 | // These routines are not fully optimal (not guaranteed to be shortest), but are | 
 | // short-ish and match the implementation that has been used in protobuf since | 
 | // the beginning. | 
 |  | 
 | // The given buffer size must be at least kUpb_RoundTripBufferSize. | 
 | enum { kUpb_RoundTripBufferSize = 32 }; | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | void _upb_EncodeRoundTripDouble(double val, char* buf, size_t size); | 
 | void _upb_EncodeRoundTripFloat(float val, char* buf, size_t size); | 
 |  | 
 | #ifdef __cplusplus | 
 | } /* extern "C" */ | 
 | #endif | 
 |  | 
 | #include "upb/port/undef.inc" | 
 |  | 
 | #endif /* UPB_LEX_ROUND_TRIP_H_ */ |