帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:ANSI  版本  ANSI C  sem  
semver parser and render in ANSI C

  • 源代码名称:semver.c
  • 源代码网址:http://www.github.com/h2non/semver.c
  • semver.c源代码文档
  • semver.c源代码下载
  • Git URL:
    git://www.github.com/h2non/semver.c.git
  • Git Clone代码到本地:
    git clone http://www.github.com/h2non/semver.c
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/h2non/semver.c
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • semver.c Build StatusGitHub release

    语义版本解析器和在中使用零依赖项编写的render 。

    特性

    • 标准兼容( 否则,打开一个问题)
    • 版本元数据解析
    • 版本预发布解析
    • 版本比较助手
    • 支持比较运算符
    • 版本渲染
    • 版本 bump
    • 版本消毒剂
    • 100%测试覆盖
    • 无正则表达式( ANSI C 不支持它)
    • 排序/筛选的数值转换

    版本

    • v0 - 旧版版本。 Beta 。不再维护。
    • v1 - 当前稳定版本。

    用法

    基本比较:

    #include<stdio.h>#include<semver.h>char current[] = "1.5.10";char compare[] = "2.3.0";intmain(int argc, char *argv[]) {
     semver_t current_version = {};
     semver_t compare_version = {};
     if (semver_parse(current, &current_version)
     || semver_parse(compare, &compare_version)) {
     fprintf(stderr,"Invalid semver stringn");
     return -1;
     }
     int resolution = semver_compare(compare_version, current_version);
     if (resolution == 0) {
     printf("Versions %s is equal to: %sn", compare, current);
     }
     elseif (resolution == -1) {
     printf("Version %s is lower than: %sn", compare, current);
     }
     else {
     printf("Version %s is higher than: %sn", compare, current);
     }
     // Free allocated memory when we're donesemver_free(&current_version);
     semver_free(&compare_version);
     return0;
    }

    满足版本:

    #include<stdio.h>#include<semver.h>semver_t current = {};semver_t compare = {};intmain(int argc, char *argv[]) {
     semver_parse("1.3.10", &current);
     semver_parse("1.5.2", &compare);
     // Use caret operator for the comparisonchar operator[] = "^";
     if (semver_satisfies(current, compare, operator)) {
     printf("Version %s can be satisfied by %s", "1.3.10", "1.5.2");
     }
     // Free allocated memory when we're donesemver_free(&current);
     semver_free(&compare);
     return0;
    }

    安装

    克隆这里存储库:

    $ git clone https://github.com/h2non/semver.c

    或者使用 clib 安装:

    $ clib install h2non/semver.c

    API

    结构 semver_t { int major,int-minor,int *,char预发布,字符 * 元数据 }

    semver基结构。

    ( 常量字符 *str, semver_t *ver) => int

    将字符串解析为semver表达式。

    返回 :

    • -1 - 出现无效的semver或者解析错误时。
    • 0 - 一切都很好 !
    semver_compare ( 。semver_t,semver_t-b ) => int

    比较版本 ab

    返回:

    • 版本较低时的-1
    • 等版本时的0
    • 如果版本较高,则为 1
    ( semver_t,semver_t,char,char,char

    检查是否可以根据给定的比较运算符来满足两个版本。

    允许操作员:

    • = - 相等
    • >= - 更高或者等于
    • <= - 小于或者等于
    • < - 低于
    • > - 高于
    • ^ 插入运算符比较( 更多信息)
    • ~ tilde 运算符比较( 更多信息)

    返回 :

    • 1 - 可以满足
    • 0 - 无法满足
    semver_satisfies_caret ( 。semver_t,semver_t-b ) => int

    检查 y 是否可以通过与插入符运算符进行比较来满足版本 x

    请参阅:https://docs.npmjs.com/misc/semver#caret-ranges-1-2-3-0-2-5-0-0-4

    返回 :

    • 1 - 可以满足
    • 0 - 无法满足
    semver_satisfies_patch ( 。semver_t,semver_t-b ) => int

    检查执行与 tilde 运算符比较的y 是否可以满足版本 x

    请参阅:https://docs.npmjs.com/misc/semver#tilde-ranges-1-2-3-1-2-1

    返回 :

    • 1 - 可以满足
    • 0 - 无法满足
    semver_eq ( 。semver_t,semver_t-b ) => int

    相等比较。

    semver_ne ( 。semver_t,semver_t-b ) => int

    不相等比较。

    semver_gt ( 。semver_t,semver_t-b ) => int

    大于比较。

    semver_lt ( 。semver_t,semver_t-b ) => int

    比比较低。

    semver_gte ( 。semver_t,semver_t-b ) => int

    大于或者等于比较。

    semver_lte ( 。semver_t,semver_t-b ) => int

    小于或者等于比较。

    ( semver_t *v, 字符 *dest) => void

    呈现为字符串。

    semver_numeric ( semver_t *v) => int

    呈现为数值。对排序和筛选有用。

    semver_bump ( semver_t *a) => void

    Bump主要版本。

    semver_bump_minor ( semver_t *a) => void

    Bump次要版本。

    semver_bump_patch ( semver_t *a) => void

    Bump修补程序版本。

    semver_free ( semver_t *a) => void

    helper 从堆释放已经分配的内存。

    ( char => int

    检查给定的字符串是否为有效的semver表达式。

    ( char => int

    移除给定字符串中无效的semver字符。

    许可证

    麻省理工学院- Tomas Aparicio



    文章标签:版本  ANSI  sem  ANSI C  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语