diff --git a/rbi/docker_engine_ruby/helpers/buildkit_status.rbi b/rbi/docker_engine_ruby/helpers/buildkit_status.rbi new file mode 100644 index 0000000..deada3f --- /dev/null +++ b/rbi/docker_engine_ruby/helpers/buildkit_status.rbi @@ -0,0 +1,76 @@ +# typed: strong + +module DockerEngineRuby + module Helpers + module BuildkitStatus + TRACE_ID = T.let("moby.buildkit.trace", String) + + class Vertex < Struct + extend T::Generic + + Elem = type_member { { fixed: T.anything } } + + sig { returns(T.nilable(String)) } + def digest; end + + sig { returns(T.nilable(String)) } + def name; end + + sig { returns(T::Boolean) } + def cached; end + + sig { returns(T::Boolean) } + def started; end + + sig { returns(T::Boolean) } + def completed; end + + sig { returns(T.nilable(String)) } + def error; end + end + + class Log < Struct + extend T::Generic + + Elem = type_member { { fixed: T.anything } } + + sig { returns(T.nilable(String)) } + def vertex; end + + sig { returns(Integer) } + def stream; end + + sig { returns(String) } + def msg; end + end + + class Status < Struct + extend T::Generic + + Elem = type_member { { fixed: T.anything } } + + sig { returns(T::Array[DockerEngineRuby::Helpers::BuildkitStatus::Vertex]) } + def vertexes; end + + sig { returns(T::Array[DockerEngineRuby::Helpers::BuildkitStatus::Log]) } + def logs; end + end + + class << self + sig { params(info: DockerEngineRuby::Models::BuildInfo).returns(T::Boolean) } + def trace?(info); end + + sig { params(aux: String).returns(DockerEngineRuby::Helpers::BuildkitStatus::Status) } + def decode(aux); end + end + + class PlainPrinter + sig { params(out: T.proc.params(line: String).void).void } + def initialize(&out); end + + sig { params(status: DockerEngineRuby::Helpers::BuildkitStatus::Status).void } + def print(status); end + end + end + end +end diff --git a/sig/docker_engine_ruby/helpers/buildkit_status.rbs b/sig/docker_engine_ruby/helpers/buildkit_status.rbs new file mode 100644 index 0000000..6e23963 --- /dev/null +++ b/sig/docker_engine_ruby/helpers/buildkit_status.rbs @@ -0,0 +1,37 @@ +module DockerEngineRuby + module Helpers + module BuildkitStatus + TRACE_ID: String + + class Vertex < Struct[untyped] + attr_accessor digest: String? + attr_accessor name: String? + attr_accessor cached: bool + attr_accessor started: bool + attr_accessor completed: bool + attr_accessor error: String? + end + + class Log < Struct[untyped] + attr_accessor vertex: String? + attr_accessor stream: Integer + attr_accessor msg: String + end + + class Status < Struct[untyped] + attr_accessor vertexes: ::Array[Vertex] + attr_accessor logs: ::Array[Log] + end + + def self.trace?: (DockerEngineRuby::Models::BuildInfo info) -> bool + + def self.decode: (String aux) -> Status + + class PlainPrinter + def initialize: () { (String line) -> void } -> void + + def print: (Status status) -> void + end + end + end +end