Blame docs/api-value-example.md

Packit Service 7770af
## Example operation.c
Packit Service 7770af
Packit Service 7770af
```C
Packit Service 7770af
#include <stdio.h>
Packit Service 7770af
#include <string.h>
Packit Service 7770af
#include "sass/values.h"
Packit Service 7770af
Packit Service 7770af
int main( int argc, const char* argv[] )
Packit Service 7770af
{
Packit Service 7770af
Packit Service 7770af
  // create two new sass values to be added
Packit Service 7770af
  union Sass_Value* string = sass_make_string("String");
Packit Service 7770af
  union Sass_Value* number = sass_make_number(42, "nits");
Packit Service 7770af
Packit Service 7770af
  // invoke the add operation which returns a new sass value
Packit Service 7770af
  union Sass_Value* total = sass_value_op(ADD, string, number);
Packit Service 7770af
Packit Service 7770af
  // no further use for the two operands
Packit Service 7770af
  sass_delete_value(string);
Packit Service 7770af
  sass_delete_value(number);
Packit Service 7770af
Packit Service 7770af
  // this works since libsass will always return a
Packit Service 7770af
  // string for add operations with a string as the
Packit Service 7770af
  // left hand side. But you should never rely on it!
Packit Service 7770af
  puts(sass_string_get_value(total));
Packit Service 7770af
Packit Service 7770af
  // invoke stringification (uncompressed with precision of 5)
Packit Service 7770af
  union Sass_Value* result = sass_value_stringify(total, false, 5);
Packit Service 7770af
Packit Service 7770af
  // no further use for the sum
Packit Service 7770af
  sass_delete_value(total);
Packit Service 7770af
Packit Service 7770af
  // print the result - you may want to make
Packit Service 7770af
  // sure result is indeed a string, altough
Packit Service 7770af
  // stringify guarantees to return a string
Packit Service 7770af
  // if (sass_value_is_string(result)) {}
Packit Service 7770af
  // really depends on your level of paranoia
Packit Service 7770af
  puts(sass_string_get_value(result));
Packit Service 7770af
Packit Service 7770af
  // finally free result
Packit Service 7770af
  sass_delete_value(result);
Packit Service 7770af
Packit Service 7770af
  // exit status
Packit Service 7770af
  return 0;
Packit Service 7770af
Packit Service 7770af
}
Packit Service 7770af
```
Packit Service 7770af
Packit Service 7770af
## Compile operation.c
Packit Service 7770af
Packit Service 7770af
```bash
Packit Service 7770af
gcc -c operation.c -o operation.o
Packit Service 7770af
gcc -o operation operation.o -lsass
Packit Service 7770af
./operation # => String42nits
Packit Service 7770af
```