mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-05-12 08:57:26 +08:00
* feat(mcp-server): 增加mcclient sdk适配器结构体以及对应的认证方法 * feat(mcp-server): 增加资源查询的sdk适配器方法 * feat(mcp-server): 增加资源操作的sdk适配器方法 * feat(mcp-server): 增加区域资源查询工具 * feat(mcp-server): 增加网络资源查询工具 * feat(mcp-server): 增加镜像资源查询工具 * feat(mcp-server): 增加虚拟机资源查询工具 * feat(mcp-server): 增加vpc资源查询工具 * feat(mcp-server): 增加存储资源查询工具 * feat(mcp-server): 增加套餐资源查询工具 * feat(mcp-server): 增加虚拟机创建工具 * feat(mcp-server): 增加虚拟机监控工具 * feat(mcp-server): 增加虚拟机操作工具,包括启动、重启、停止、重置密码和删除 * optimize(mcp-server): 增加工具函数接口定义 * feat(mcp-server): 增加工具函数所使用的结构体模型 * feat(mcp-server): 新增工具统一注册中心 * feat(mcp-server): 增加mcp服务中心 * feat(mcp-server): 增加统一配置中心 * feat(mcp-server): 增加服务启动主入口 * doc(mcp-server): 增加mcp-server相关的说明,安装和使用文档 * fix(mcp-server): 更正文档位置以及补充图片 * refactor(mcp-server): 修正了service以及配置解析的逻辑 * refactor(mcp-server): 将日志打印相关代码改成使用log * feat(mcp-server): 增加mcclient sdk适配器结构体以及对应的认证方法 * feat(mcp-server): 增加资源查询的sdk适配器方法 * feat(mcp-server): 增加资源操作的sdk适配器方法 * feat(mcp-server): 增加区域资源查询工具 * feat(mcp-server): 增加网络资源查询工具 * feat(mcp-server): 增加镜像资源查询工具 * feat(mcp-server): 增加虚拟机资源查询工具 * feat(mcp-server): 增加vpc资源查询工具 * feat(mcp-server): 增加存储资源查询工具 * feat(mcp-server): 增加套餐资源查询工具 * feat(mcp-server): 增加虚拟机创建工具 * feat(mcp-server): 增加虚拟机监控工具 * feat(mcp-server): 增加虚拟机操作工具,包括启动、重启、停止、重置密码和删除 * optimize(mcp-server): 增加工具函数接口定义 * feat(mcp-server): 增加工具函数所使用的结构体模型 * feat(mcp-server): 新增工具统一注册中心 * feat(mcp-server): 增加mcp服务中心 * feat(mcp-server): 增加统一配置中心 * feat(mcp-server): 增加服务启动主入口 * doc(mcp-server): 增加mcp-server相关的说明,安装和使用文档 * fix(mcp-server): 更正文档位置以及补充图片 * refactor(mcp-server): 修正了service以及配置解析的逻辑 * refactor(mcp-server): 将日志打印相关代码改成使用log * fix(mcp-server): 修复依赖导入以及缺失等问题 * refactor(mcp-server): 复用common_options * fix: 修复配置结构体字段重复的问题 * doc(mcp-server): 更正文档错误 * style(mcp-server): 格式化import顺序 * style(mcp-server): 格式化import导入 * style(mcp-server): 规范import语句 * doc(mcp-server): 给目录生成doc文件 --------- Co-authored-by: 屈轩 <qu_xuan@icloud.com>
48 lines
862 B
Go
48 lines
862 B
Go
package jsonparser
|
|
|
|
import (
|
|
bio "bytes"
|
|
)
|
|
|
|
// minInt64 '-9223372036854775808' is the smallest representable number in int64
|
|
const minInt64 = `9223372036854775808`
|
|
|
|
// About 2x faster then strconv.ParseInt because it only supports base 10, which is enough for JSON
|
|
func parseInt(bytes []byte) (v int64, ok bool, overflow bool) {
|
|
if len(bytes) == 0 {
|
|
return 0, false, false
|
|
}
|
|
|
|
var neg bool = false
|
|
if bytes[0] == '-' {
|
|
neg = true
|
|
bytes = bytes[1:]
|
|
}
|
|
|
|
var b int64 = 0
|
|
for _, c := range bytes {
|
|
if c >= '0' && c <= '9' {
|
|
b = (10 * v) + int64(c-'0')
|
|
} else {
|
|
return 0, false, false
|
|
}
|
|
if overflow = (b < v); overflow {
|
|
break
|
|
}
|
|
v = b
|
|
}
|
|
|
|
if overflow {
|
|
if neg && bio.Equal(bytes, []byte(minInt64)) {
|
|
return b, true, false
|
|
}
|
|
return 0, false, true
|
|
}
|
|
|
|
if neg {
|
|
return -v, true, false
|
|
} else {
|
|
return v, true, false
|
|
}
|
|
}
|