1 # Copyright 2017 Google Inc. All rights reserved. 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 from . import encode 16 from . import number_types 17 from . import packer 18 19 def GetSizePrefix(buf, offset): 20 """Extract the size prefix from a buffer.""" 21 return encode.Get(packer.int32, buf, offset) 22 23 def RemoveSizePrefix(buf, offset): 24 """ 25 Create a slice of a size-prefixed buffer that has 26 its position advanced just past the size prefix. 27 """ 28 return buf, offset + number_types.Int32Flags.bytewidth 29