R/size.R

setGeneric( "bytesize", function(object, ...){
	standardGeneric( "bytesize" )
} )
setMethod( "bytesize", "Message", function(object, ...){
	.Call( "Message__bytesize", object@pointer, PACKAGE = "RProtoBuf" )
} )

setGeneric( "size", function( object, field, ... ){
	standardGeneric( "size" )
} )
setMethod( "size", "Message", function(object, field, ...){
	
	if( is.character( field ) || is.numeric( field ) ){
		.Call( "Message__field_size", object@pointer, field, PACKAGE = "RProtoBuf" )
	} else{
		stop( "field should be a character or a number" )
	}
	
} )


setGeneric( "size<-", function( object, field, ..., value ){
	standardGeneric( "size<-" )
} )
setMethod( "size<-", "Message", function(object, field, ..., value){
	
	if( !is.numeric( value ) ){
		stop("value should be a number")
	}
	value <- as.integer( value )[1]
	
	if( is.character( field ) || is.numeric( field ) ){
		.Call( "Message__set_field_size", object@pointer, field, value, PACKAGE = "RProtoBuf" )
	} else{
		stop( "field should be a character or a number" )
	}
	object
} )

Try the RProtoBuf package in your browser

Any scripts or data that you put into this service are public.

RProtoBuf documentation built on Nov. 3, 2022, 9:06 a.m.